关闭

android 中selector的使用

标签: androidAndroidStudioSelector状态选择器
346人阅读 评论(0) 收藏 举报
分类:

1、Android中的状态选择器是在drawable文件夹下创建的, 比如btn_selector.xml

2、状态选择器的内容写法:

<?xml version="1.0" encoding="utf-8" ?>     

<selector xmlns:android="http://schemas.android.com/apk/res/android">   

<!-- 默认时的背景图片 -->    

 <item android:drawable="@drawable/pic1" />      

<!-- 没有焦点时的背景图片 -->    

  <item android:state_window_focused="false"     

        android:drawable="@drawable/pic1" />     

<!-- 非触摸模式下获得焦点并单击时的背景图片 -->    

  <item android:state_focused="true" android:state_pressed="true"     

        android:drawable= "@drawable/pic2" />    

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

  <item android:state_focused="false" android:state_pressed="true"     

        android:drawable="@drawable/pic3" />     

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

  <item android:state_selected="true"     

        android:drawable="@drawable/pic4" />     

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

  <item android:state_focused="true"     

        android:drawable="@drawable/pic5" />     

</selector> 

3、使用状态选择器

方式一:

在布局文件中,比如 Button的属性中使用:android:background=“@drawable/btn_selector"; 另外在listview控件上使用状态选择器的时候可以使用属性:android:listSelector="@drawable/btn_selector"

方式二:

在Java代码中使用状态选择器。

Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg); 

// 注意这种情况偶尔会出现listview全黑的情况, 这个时候建议在布局文件中,listview中添加一行代码:android:cacheColorHint="@android:color/transparent"
ListView.setSelector(drawable); 
// 在btn 这类控件上使用
btn.setSelector(drawable);

上面是背景状态选择器的使用介绍。下面我们在背景状态选择器的基础上添加不同背景状态下的Button上文字的样式选择器:

1、同样的在drawable文件夹下创建btn_font_selector.xml

<?xml version="1.0" encoding="utf-8"?>  

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

    <item android:state_selected="true" android:color="#FFF" />  

    <item android:state_focused="true" android:color="#FFF" />  

    <item android:state_pressed="true" android:color="#FFF" />  

    <item android:color="#000" />  

</selector>  

2、用方式:

仍然是上述的两种使用方式。这里就不再赘述了。


同样的我们也可以使用复合型的状态选择器:也就是同时定义不同状态下的背景、字体和颜色的状态选择器,依旧是在drawable文件夹下创建一个xml文件,文件内容如下:

 

<?xml version="1.0" encoding="utf-8"?>  

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

    <item android:state_selected="true" android:color="#FFF"
android:drawable="@drawable/pic5" />

</selector>

同样的使用方式依旧和上述的一样。


0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37630次
    • 积分:466
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:2篇
    • 译文:3篇
    • 评论:8条
    最新评论