基于android背景选择器selector的用法汇总

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


代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 没有焦点时的背景图片 -->
    <item android:drawable="@drawable/handle_normal" android:state_enabled="true" android:state_window_focused="false"/>
    <!-- 触摸模式按下时的背景图片 -->
    <item android:drawable="@drawable/handle_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/handle_focused" android:state_enabled="true" android:state_focused="true"/>
    <item android:drawable="@drawable/handle_normal" android:state_enabled="true"/>
    <!-- 获得焦点时的图片背景 -->
    <item android:drawable="@drawable/handle_focused" android:state_focused="true"/>
    <!--
    android:state_selected是选中
 android:state_focused是获得焦点
 android:state_pressed是点击
 android:state_enabled是设置是否响应事件,指所有事件
    -->
</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是设置是否响应事件,指所有事件

根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。
以下是配置button中的文字效果:
drawable/button_font.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>

Button还可以实现更复杂的效果,例如渐变
drawable/button_color.xml


代码如下:

<SPAN style="COLOR: #330033"><?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">         /
<item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
                <shape>
                <gradient  android:startColor="#8600ff" />
                      <stroke   android:width="2dp" android:color="#000000" />
                       <corners android:radius="5dp" /> 
                       <padding android:left="10dp" android:top="10dp"
                                android:bottom="10dp" android:right="10dp"/> 
                 </shape>
</item>
<item android:state_focused="true">//定义当button获得 focus时的形态
                 <shape>
                       <gradient android:startColor="#eac100"/>
                       <stroke android:width="2dp" android:color="#333333"  color="#ffffff"/>
                       <corners android:radius="8dp" />  
                       <padding android:left="10dp" android:top="10dp"
                                android:bottom="10dp" android:right="10dp"/>                  
                </shape>
 </item>
</selector></SPAN><SPAN style="COLOR: #ff0000"> </SPAN>

最后,需要在包含 button的xml文件里添加两项。例如main.xml 文件,需要在<Button />里加两项android:focusable="true" android:background="@drawable/button_color"这样就把drawale/button_color.xml文件与这个控件关联起来了。

(0)

相关推荐

  • Android Selector和Shape的使用方法

    1.背景选择器(位于res/drawable/,使用方法:android:background="@drawable/XXX") 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <selectorxmlns:android="http://schemas.android.com/apk/res/android"> <itemandroid:dra

  • Android中Listview点击item不变颜色及设置listselector 无效的解决方案

    这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I

  • Android中的Shape和Selector的结合使用实例

    一:在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,首先我们了解一下Shape下面有哪些标签,都代表什么意思: (1).solid:填充 android:color指定填充的颜色 (2).gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色, android:angle是渐变角度,必须为45的整数倍. 另外渐变默认的模式为android:type="linear",即线性渐变, 可以指定渐

  • Android selector背景选择器的使用详解

    在开发应用中,很多情况下要设计listview或button控件的背景,下面总结一下android的selector的用法:1.在drawable中配置Android的selector.将如下的XML文件保存成你自己命名的.xml文件(比如item_bg.xml),并将该文件放置在drawable文件中,在系统使用时根据ListView中的列表项的状态来使用相应的背景图片. 复制代码 代码如下: <?xml version="1.0" encoding="utf-8&q

  • Android使用selector修改TextView中字体颜色和背景色的方法

    本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法.分享给大家供大家参考,具体如下: android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化.这里我说一下TextView中的一些应用. 我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了. TextVi

  • Android编程之selector下设置背景属性值的方法

    本文实例讲述了Android编程之selector下设置背景属性值的方法.分享给大家供大家参考,具体如下: 在res/drawable文件夹新增一个文件,此文件设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected,state_focused,state_enabled 等几个状态: android:state_pressed Boolean. "true" if this item shoul

  • Android selector的实例详解

    Android  selector的详解 前言: StateListDrawable 是一种通过XML文件来定义的drawable,使用几个不同的图片来呈现同一个图形,通过object的状态来实现切换.例如,一个Button有几个不同的状态(按压,获取焦点等等),这种情况下,通过使用 state list drawable,你就可以实现在不同的状态下使用不同的背景图片. 你可以在一个XML文件中描述state list.通过在根节点selector下定义一个item元素来添加每个图形.每一各it

  • 基于android背景选择器selector的用法汇总

    一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <!-- 没有焦点时的背景图片 -->    <item android:dr

  • Android中的Selector的用法详解及实例

    Android中的Selector的用法 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@drawable/b

  • 基于c语言中调试工具的用法汇总(不包含gdb)

    是不是只有编译的时候才知道程序写了错误?有没有在未编译的时候就让机器帮你检查错误的工具呢?答案是:有!! splint工具.用一个最简单的HELLO WORLD来表述:===================================== 复制代码 代码如下: /*错误很明显*/#include <stdio.h> int main(void){   print("hello world\n", s);   return} -----------------------

  • Android编程中selector背景选择器用法实例分析

    本文实例讲述了Android编程中selector背景选择器用法.分享给大家供大家参考,具体如下: 在Android开发过程中,经常对某一View的背景在不同的状态下,设置不同的背景,增强用户体验.如果按钮,在按下时,背景变化,如果在代码中动态设置,相对比较麻烦.Android为我们提供了selector背景选择器可以非常方便的解决这一问题. Selector的结构描述: 1.android:state_pressed="true/false" true:表示按下状态下使用,false

  • Android View背景选择器编写技巧

    在项目中选择器的使用是非常多的,以下是本人在项目中的一些常用的背景选择器的写法 带边框下划线背景选择器效果图: 上面布局中放了10个CheckBox,然后设置了CheckBox的背景图片位,背景选择器,同时设置了字体的颜色选择器. 带边框下划线背景选择器代码: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com

  • Scrapy元素选择器Xpath用法汇总

    众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,Scrapy的元素选择器Xpath(结合正则表达式)是其中较为出色的一种(个人认为最好啦,当然只能在Scrapy中使用)功能相对较全.使用较为方便,正因为它的丰富性,有时很多功能会忘记,所以在这里整理好记录下来,方便今后查阅使用. 1. 元素的多级定位与跳级定位 多级定位:依靠html中的多级元素逐步缩小范围 response.xpath('//

  • Android开发之资源文件用法实例总结

    本文实例总结了Android开发之资源文件用法.分享给大家供大家参考,具体如下: 这里记录在Android开发中经常用到的一些用法 arrays.xml定义数组 例: <resources> <!-- share items --> <string-array name="app_share_items"> <item>新浪微博</item> <item>腾讯微博</item> </string-

  • Android桌面插件App Widget用法分析

    本文实例讲述了Android桌面插件App Widget用法.分享给大家供大家参考,具体如下: 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widget provider来发布一个Widget.可以容纳其它App Widget的应用程序组件被称为App Widget宿主.下面的截屏显示了一个音乐App Widget. appwidget 这篇文章描述了如何使用Ap

随机推荐