android背景选择器selector用法汇总

来源:互联网 发布:阿里云 cdn ddos 编辑:程序博客网 时间:2024/05/03 00:44

一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放置的相关图片

<?xml version="1.0"encoding="utf-8" ?>  
<selectorxmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- 默认时的背景图片--> 
 
  <itemandroid:drawable="@drawable/pic1"/>   
<!-- 没有焦点时的背景图片 --> 
 
 
 <itemandroid:state_window_focused="false" android:drawable="@drawable/pic1"/>   
<!-- 非触摸模式下获得焦点并单击时的背景图片 --> 
 
 
 <itemandroid:state_focused="true" android:state_pressed="true"  android:drawable= "@drawable/pic2"/> 

<!-- 触摸模式下单击时的背景图片--> 

<itemandroid:state_focused="false" android:state_pressed="true"  android:drawable="@drawable/pic3"/>  

<!--选中时的图片背景--> 

  <itemandroid:state_selected="true"  android:drawable="@drawable/pic4"/>  

<!--获得焦点时的图片背景--> 

  <itemandroid:state_focused="true"  android:drawable="@drawable/pic5"/>   
</selector>


.使用xml文件:

1.方法一:在listview中配置android:listSelector="@drawable/xxx或者在listview的item中添加属性android:background="@drawable/xxx"

2.方法二:Drawable drawable =getResources().getDrawable(R.drawable.xxx); ListView.setSelector(drawable);但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"使其透明。


相关属性:

android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件

根据这些状态同样可以设置buttonselector效果。也可以设置selector改变button中的文字状态。




0 0