安卓selector的使用

首先还是得吐槽一下,前几天就想写博客来着,可是始终都是登陆不上。其他网站的技术博客,如csdn也是没法查看,很多问题百度到的答案看到有blog.csdn字样的也就不指望能打开了。一个技术博客已经沦落到打不开的地步,不管是出于怎样的原因相信都会是一件让人无法想象的事情。

好了,言归正传。最近在做应用的UI,主要是button的效果方面。之前一直用的是OnTouchListener去监听button的触摸事件,虽然最终是可以实现想要的效果,但是超大的代码量实在是一种违背编程精神与原则的行为。于是将所有的控件效果用selector改写。

不得不说,selector用起来方便又快捷,虽然相比ios的UIButton还略逊一筹,但是比起原来的方法也是大有进步了。selector的主要思想就是:区分不同的状态,并且设置不同状态下的drawable。其中涉及到两方面的问题要注意一下:

1、顺序问题。一个selector中可以有多个item,但默认状态下的item一定要写在最后一个,否则无法达到想要的效果(这个坑浪费了我好多的时间。。)

2、使用颜色。item默认的属性中没有android:color这个选项,所以要使用用RGB格式表示的颜色时要将颜色资源写入到strings中,再在drawable属性中引用@color/XXX实现对颜色的使用。

除了button外,其他的控件,比如:EditText等都可以通过写selector的方法实现不同状态下的UI变换

时间: 2024-10-11 02:29:20

安卓selector的使用的相关文章

安卓Selector详细介绍

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 默认情况,item必须放在最后 --> <!-- 非触摸模式下获得焦点并单击时的背景图片 --> <item android:state_focused="

安卓--selector简单使用

selector ---选择器 在App的使用中经常能看到selector的身影 如:一个按键看上去白色或者其它颜色,可能是一张图片 按下去又显示其它的颜色或者另外一张图片 这里使用shape配合使用 正常状态 <?xml version="1.0" encoding="utf-8"?> <!-- rectangle 矩形 oval 椭圆 line 一条线 ring 环形 --> <shape android:shape="r

安卓selector

定义styles.xml Xml代码   <?xml version="1.0" encoding="utf-8"?> <resources> <style name="RoundedCornerBtn" parent="RoundedCornerView"> <item name="android:background">@drawable/roundedc

安卓实战开发之CardView的selector及GrideView的item按下状态保留selector(state_activated)的实现

android的selector对于android开发者而言再熟悉不过了,只要定义一个drawable目录下定义一个selector的xml文件,在布局文件中background引用这个xml文件或者在代码中setBackgroundDrawable的时候使用此xml就可以实现控件按下或有焦点或激活状态等不同状态的效果.你真的对selector的使用全了解吗? 前言 项目中确实用到了像多个标签,然后选中规格要给文字的边框加点颜色,对于长度和个数不确定的情况呢我们通常可以在代码中通过数据的长度动态

安卓开发-设置RadioButton的点击效果

在安卓开发中用到底部菜单栏 需要用到RadioButton这个组件 实际应用的过程中,需要对按钮进行点击,为了让用户知道是否点击可这个按钮,可以设置点击后 ,该按钮的颜色或者背景发生变化. layout中这部分的代码为: 1 <RadioButton 2 android:id="@+id/radio_button0" 3 android:layout_height="fill_parent" 4 android:layout_marginTop="2

[安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果

List在各种手机应用中都有体现,是安卓UI设计的必修课. 本文将介绍在开发中如何利用ListView和GridView设计自定义列表. 下面分别是用ListView和GridView做的效果: 上面两个看似相差很大,但是其代码非常类似,主要有:     ① 在页面中嵌入ListView或GridView: ListView的activity_main.xml 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/r

安卓开发复习笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航) 安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航) 关于Fragment类在之前的安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)也介绍过,这里就不再重复阐述了. 国际惯例,先来张效果图: 下面

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

安卓命名规范

软件开发离不开团队,当然安卓开发也是这样的.所以一定要做好团队之间的协调和规范.下面是我复制的一篇博客,可以认真学习安卓的命名规范,更好地协调团队之间的合作. 转的博客内容如下: 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式