android 中selector的使用

原创 2016年05月30日 14:20:25

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>

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

探索Android中selector和shape的结合使用

Android中的Selector(背景选择器)主要是用来改变一个按钮控件的背景,在Android UI设计中经常会遇到,比如我们在点击Button时需要有些效果的变化,这时候就要用到和。和对美化控件...
  • qq_20785431
  • qq_20785431
  • 2015年12月06日 21:10
  • 8972

安卓Selector失效、无用的解决方案

在开发安卓的时候经常会用到selector来为button自动设置背景,selector中有多种item,每个item可以定义一种状态,同时设置这种状态所要显示的图片。 但是在使用的selector中...
  • zfan93
  • zfan93
  • 2016年04月27日 10:10
  • 1279

Android selector的属性和使用详解

1.selector中全部属性 2.常用的属性分析 android:state_accessibility_focused是否能够获取焦点 android:state_selecte...
  • pcaxb
  • pcaxb
  • 2015年08月06日 15:41
  • 1291

关于selector点击区域放大问题的解决

关于selector点击区域放大问题的解决
  • biaobiao1217
  • biaobiao1217
  • 2016年07月06日 15:53
  • 654

使用代码动态创建Selector

代码如下第一步:创建:/** * Created by developer on 16/10/13. 动态创建Selector */public class CommonUtils { /*...
  • north1989
  • north1989
  • 2016年10月13日 13:18
  • 551

Android使用Java代码设置selector或drawable,以及使用自定义控件方式使用它

镇楼图~~! TextView再给个selecotor 这种东西不要太简单,但是这种东西我不想重复去写N个Selector ! so~ /** * 获取Selector ...
  • SilentWeek
  • SilentWeek
  • 2016年10月25日 22:40
  • 2468

Android 关于selector中item顺序的问题

selector常常用于设置按钮等控件在不同状态下的显示,例如默认下的颜色,按下时候的颜色等等,但是需要注意的一点是,selector中各个item的顺序是会影响实际效果,这也是常常有人设置了sele...
  • l403040463
  • l403040463
  • 2017年05月17日 20:15
  • 520

android设置圆形 带selector状态按钮

  • new_abc
  • new_abc
  • 2015年11月30日 17:13
  • 1805

Android中的选择器selector的写法解析及不起作用原因

selector能为我们快速定义各种状态下控件的字体或背景颜色,非常方便快捷,可是有时候我们写对了状态定义却不起效果,比如 ...
  • XieYupeng520
  • XieYupeng520
  • 2015年06月11日 09:33
  • 5841

Android selector标签下的几种状态解读

selector标签,这个标签是必要的标签,而且应当作为XML文件的根节点,在selector可以有一或多个item子标签在selector标签中,我们可以配置以下几种属性: xmlns:a...
  • qq_25835645
  • qq_25835645
  • 2015年07月21日 15:42
  • 1763
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 中selector的使用
举报原因:
原因补充:

(最多只允许输入30个字)