AndroidA——背景选择器selector用法汇总(一)

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

[html] view plain copy

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

[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_selected="true" android:color="#FFF" />
  4. <item android:state_focused="true" android:color="#FFF" />
  5. <item android:state_pressed="true" android:color="#FFF" />
  6. <item android:color="#000" />
  7. </selector>

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

[html] view plain copy

  1. <span style="color:#330033;"><?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">         /
  3. <item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
  4. <shape>
  5. <gradient  android:startColor="#8600ff" />
  6. <stroke   android:width="2dp" android:color="#000000" />
  7. <corners android:radius="5dp" />
  8. <padding android:left="10dp" android:top="10dp"
  9. android:bottom="10dp" android:right="10dp"/>
  10. </shape>
  11. </item>
  12. <item android:state_focused="true">//定义当button获得 focus时的形态
  13. <shape>
  14. <gradient android:startColor="#eac100"/>
  15. <stroke android:width="2dp" android:color="#333333"  color="#ffffff"/>
  16. <corners android:radius="8dp" />
  17. <padding android:left="10dp" android:top="10dp"
  18. android:bottom="10dp" android:right="10dp"/>
  19. </shape>
  20. </item>
  21. </selector></span><span style="color:#ff0000;"> </span>

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

时间: 2024-10-04 13:17:09

AndroidA——背景选择器selector用法汇总(一)的相关文章

【Android】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="@draw

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="@draw

android中的selector背景选择器的用法

关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法. 首先android的selector是在drawable/xxx.xml中配置的. 先看一下listview中的状态: 把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片. drawable/list_item_bg.xml <?x

android 控件选择器Selector

以Button为例: 一般Button有2个状态,按下和正常状态 1.在res下新建drawable文件夹,用以存放自己的Drawable文件 2.在drawable文件夹下新建按下和正常状态shape文件(是图片资源,则略过此步骤) 3.新建Button背景Selector文件 4.为Button的backgroud指定Drawable 代码: button_noraml.xml <?xml version="1.0" encoding="utf-8"?&g

C#中DllImport用法汇总

(转) 最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享. 大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能. DllImport是System.Runtime.InteropServices命名空间下的

Flume-NG源码阅读之SourceRunner,及选择器selector和拦截器interceptor的执行

在AbstractConfigurationProvider类中loadSources方法会将所有的source进行封装成SourceRunner放到了Map<String, SourceRunner> sourceRunnerMap之中.相关代码如下: 1 Map<String, String> selectorConfig = context.getSubProperties( 2 BasicConfigurationConstants.CONFIG_SOURCE_CHANNE

jquery中odd和even选择器的用法说明

jquery中odd和even选择器的用法说明:odd 选择器选取每个带有奇数 index 值的元素(比如 1.3.5).index 值从 0 开始,所有第一个元素是偶数 (0).最常见的用法:与其他元素/选择器一起使用,来选择指定的组中奇数序号的元素(如上面的例子).语法$(":odd") 比如:$("tr:odd")表示获取奇数行 类似地有$("tr:even")表示获取偶数行.

CSS中:before和:after选择器的用法

在线演示这次给大家带来的是对话气泡效果,主要是演示了 :before / :after 和 border 的用法,赶快来围观吧. 阅读原文:CSS中:before和:after选择器的用法

NIO 选择器 Selector

选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能.就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个 I/O 通道(Channels).C/C++代码的工具箱中,许多年前就已经有 select()和 poll()这两个POSIX(可移植性操作系统接口)系统调用可供使用了.许过操作系统也提供相似的功能,但对Java 程序员来说,就绪选择功能直到 JDK 1.4 才成为可行的方案. 从最基础的层面来看,选择器提供了询问通道是否已经准备好执行每个I/0操