`
eric_hwp
  • 浏览: 126665 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android背景选择器selector用法汇总 .

 
阅读更多

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

 

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


以下是配置button中的文字效果:
drawable/button_font.xml

  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>  
<?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

 

 

  1. <?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>
  22. <?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>

 

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

相关推荐

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

    在Android开发中,背景选择器(Selector)是一个强大的工具,用于定义不同状态下的视图样式。本文将深入探讨如何创建和使用Selector,以及它在ListView、Button等组件中的应用。 一、创建Selector XML文件 ...

    浅谈android的selector背景选择器

    ### 浅谈Android的Selector背景选择器 #### 一、引言 在Android开发中,为了提高用户体验,经常需要对控件的外观进行定制化处理,特别是在不同的交互状态下展示不同的视觉效果。`Selector`作为Android中一个非常...

    Android设置button背景selector和字体selector

    在Button中,我们主要用到两种Selector:一种是background selector(背景选择器),用于改变按钮的背景颜色或图片;另一种是text_color selector(文本颜色选择器),用于改变按钮的文字颜色。 2. **背景选择器...

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

    本篇文章将深入探讨Android中的Selector背景选择器的使用方法。 首先,让我们了解Selector的基本结构。Selector是XML文件,通常存储在项目的res/drawable目录下。以下是一个简单的Selector示例: ```xml &lt;selector...

    Android文字颜色背景触摸点击反馈色之selector.zip

    `selectordemo`可能是包含一个示例项目的目录,展示了如何在Android Studio工程中使用`selector`实现文字和背景颜色的触摸反馈。通过分析和运行这个示例,开发者可以更直观地理解`selector`的工作原理,并将其应用到...

    jquery.selector-px.js

    jquery.selector-px.js 在微信端实现苹果的下拉框的选取

    Android -- Time-Selector日期选择控件.zip

    - `README.md`: 项目的介绍、使用方法和注意事项。 - `src/`: 源代码目录,包含`Time-Selector`控件的Java或Kotlin类。 - `res/`: 资源文件,包括布局文件(layout)、图片资源(drawable)、颜色值(color)等。 - ...

    android selector注入器

    在Android开发中,选择器(Selector)是一种非常重要的机制,用于定义View在不同状态下的显示样式,如按下、聚焦、默认等。`android selector注入器` 提供了一种高效且便捷的方式来管理这些状态选择器,使得开发者...

    Android-Ultra-Photo-Selector多图片选择器的使用.zip

    通过运行和分析这个示例,我们可以更直观地看到选择器的使用方法和效果,这对于初学者来说是非常有价值的参考资料。 总的来说,Android-Ultra-Photo-Selector是Android开发中一个实用的工具,它简化了多图片选择的...

    PyPI 官网下载 | selector-0.8.10.tar.gz

    资源来自pypi官网。 资源全名:selector-0.8.10.tar.gz

    android-selector-intellij-plugin.rar

    "android-selector-intellij-plugin"就是这样一个专门针对Android选择器管理的插件,它旨在简化开发者在IntelliJ IDEA中处理选择器资源的操作。 这个压缩包文件包含了该插件的相关资源,虽然不能确保所有功能都能...

    Python库 | appium_selector-1.0.1.tar.gz

    2. **元素选择器**:`appium_selector`可能包含了丰富的元素选择器,使得开发者能够根据不同的属性(如ID、class name、XPath等)快速准确地定位到UI元素。这对于编写测试脚本来说非常关键,因为它减少了手动查找...

    Android-Ultra-Photo-Selector.zip

    项目名称"Android Ultra Photo Selector"表明其主要功能是实现高级的图片选择器,针对Android平台优化,旨在提供优质的用户体验。虽然无法逐一验证每个文件的可用性,但该项目的核心在于其源码,开发者可以通过阅读...

    带有背景选择器的GridView

    下面我们将深入探讨GridView及其与背景选择器的结合使用。 首先,我们需要理解GridView的基本用法。GridView继承自AbsListView,通过Adapter来填充数据,每个单元格(item)可以是自定义的View。在XML布局文件中,...

    Java_NIO类库Selector机制解析.doc

    Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc

    android地址选择器

    * 选择器关闭后,调用回调事件接口 */ public interface OnSelectorCancel { /** * @param proName 省份名 * @param cityName 城市名 * @param regName 区县名 */ public void onSelectorResult...

    Android selector 完整demo

    本教程将深入探讨Android中的Selector及其使用方法,通过一个完整的Demo来帮助你理解和掌握这个核心概念。 首先,我们需要了解Selector的基本结构。一个Selector通常是一个XML文件,位于项目的res/drawable目录下。...

    selectorgadget插件.zip

    # 使用SelectorGadget获取的选择器 selector 选择器从SelectorGadget获取" # 选择对应元素并提取文本 data &lt;- webpage %&gt;% html_nodes(selector) %&gt;% html_text() ``` 在实际操作中,可能需要处理登录、分页或动态...

    Java NIO Selector选择器简介.pdf

    ### Java NIO Selector选择器详解 #### 一、Selector概览及作用 **Selector** 是 Java NIO (New I/O) 框架中的一个重要组成部分,主要用于检测一个或多个 **NIO Channel** 的状态,包括但不限于可读、可写、可连接...

Global site tag (gtag.js) - Google Analytics