首页 > 代码库 > Android之selector的使用

Android之selector的使用

我们做过项目的或多或少做过类似这样的一个功能:当点击某个组件后,组件的背景改变。初学者往往是这么一个思路:给组件设置一个监听器,当监听到事件的时候,改变组件的状态(背景图片或者背景色)。当然,这种做法是完全正确的,但是当组件特别多的时候,要处理的代码很多,很繁琐,android提供了一个selector(选择器)来改变界面的状态。下面我们以改变一个button背景来介绍它的具体用法。

1.因为selector是在Drawable文件夹下配置的,所以首先在Drawable文件夹下新建一个android xml文件

Android之selector的使用

2.然后在button_selector.xml中添加以下代码

  //被按下的背景

 <item android:state_pressed="true"
  android:drawable="@drawable/cancel_small_click"/>

  //获得焦点时的背景
 <item android:state_focused="true"
  android:drawable="@drawable/cancel_small_unclick"/>

 //默认时的背景
 <item android:drawable="@drawable/cancel_small_unclick" />

3.最后,使用这个xml文件,有两种方式:

  (1)第一种是在组件中配置:android background=“@drawable/button_selector"即可实现

  (2)第二种是在代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.button_selector); Button.setSelector(drawable)

     注1:列表设置selector后有可能显示为黑,需要加上android:cacheColorHint="@android:color/transparent"

     注2:Button的selector还有其他的效果

     android:state_selected是选中

     android:state_focused是获得焦点

     android:state_pressed是点击

     android:state_enabled是设置是否响应事件,指所有事件

     根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。以下就是配置button中的文字效果:drawable/button_font.xml

      Android之selector的使用

当然Button还可以实现更复杂的效果
Android之selector的使用

 

结伴旅游,一个免费的交友网站:www.jieberu.com

推推族,免费得门票,游景区:www.tuituizu.com

Android之selector的使用