一.创建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 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>
<?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
- <?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>
- <?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>
最后,需要在包含 button的xml文件里添加两项。例如main.xml 文件,需要在<Button />里加两项android:focusable="true" android:background="@drawable/button_color"这样就把drawale/button_color.xml文件与这个控件关联起来了。
相关推荐
在Android开发中,背景选择器(Selector)是一个强大的工具,用于定义不同状态下的视图样式。本文将深入探讨如何创建和使用Selector,以及它在ListView、Button等组件中的应用。 一、创建Selector XML文件 ...
### 浅谈Android的Selector背景选择器 #### 一、引言 在Android开发中,为了提高用户体验,经常需要对控件的外观进行定制化处理,特别是在不同的交互状态下展示不同的视觉效果。`Selector`作为Android中一个非常...
在Button中,我们主要用到两种Selector:一种是background selector(背景选择器),用于改变按钮的背景颜色或图片;另一种是text_color selector(文本颜色选择器),用于改变按钮的文字颜色。 2. **背景选择器...
本篇文章将深入探讨Android中的Selector背景选择器的使用方法。 首先,让我们了解Selector的基本结构。Selector是XML文件,通常存储在项目的res/drawable目录下。以下是一个简单的Selector示例: ```xml <selector...
`selectordemo`可能是包含一个示例项目的目录,展示了如何在Android Studio工程中使用`selector`实现文字和背景颜色的触摸反馈。通过分析和运行这个示例,开发者可以更直观地理解`selector`的工作原理,并将其应用到...
jquery.selector-px.js 在微信端实现苹果的下拉框的选取
- `README.md`: 项目的介绍、使用方法和注意事项。 - `src/`: 源代码目录,包含`Time-Selector`控件的Java或Kotlin类。 - `res/`: 资源文件,包括布局文件(layout)、图片资源(drawable)、颜色值(color)等。 - ...
在Android开发中,选择器(Selector)是一种非常重要的机制,用于定义View在不同状态下的显示样式,如按下、聚焦、默认等。`android selector注入器` 提供了一种高效且便捷的方式来管理这些状态选择器,使得开发者...
通过运行和分析这个示例,我们可以更直观地看到选择器的使用方法和效果,这对于初学者来说是非常有价值的参考资料。 总的来说,Android-Ultra-Photo-Selector是Android开发中一个实用的工具,它简化了多图片选择的...
资源来自pypi官网。 资源全名:selector-0.8.10.tar.gz
"android-selector-intellij-plugin"就是这样一个专门针对Android选择器管理的插件,它旨在简化开发者在IntelliJ IDEA中处理选择器资源的操作。 这个压缩包文件包含了该插件的相关资源,虽然不能确保所有功能都能...
2. **元素选择器**:`appium_selector`可能包含了丰富的元素选择器,使得开发者能够根据不同的属性(如ID、class name、XPath等)快速准确地定位到UI元素。这对于编写测试脚本来说非常关键,因为它减少了手动查找...
项目名称"Android Ultra Photo Selector"表明其主要功能是实现高级的图片选择器,针对Android平台优化,旨在提供优质的用户体验。虽然无法逐一验证每个文件的可用性,但该项目的核心在于其源码,开发者可以通过阅读...
下面我们将深入探讨GridView及其与背景选择器的结合使用。 首先,我们需要理解GridView的基本用法。GridView继承自AbsListView,通过Adapter来填充数据,每个单元格(item)可以是自定义的View。在XML布局文件中,...
Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc
* 选择器关闭后,调用回调事件接口 */ public interface OnSelectorCancel { /** * @param proName 省份名 * @param cityName 城市名 * @param regName 区县名 */ public void onSelectorResult...
本教程将深入探讨Android中的Selector及其使用方法,通过一个完整的Demo来帮助你理解和掌握这个核心概念。 首先,我们需要了解Selector的基本结构。一个Selector通常是一个XML文件,位于项目的res/drawable目录下。...
# 使用SelectorGadget获取的选择器 selector 选择器从SelectorGadget获取" # 选择对应元素并提取文本 data <- webpage %>% html_nodes(selector) %>% html_text() ``` 在实际操作中,可能需要处理登录、分页或动态...
### Java NIO Selector选择器详解 #### 一、Selector概览及作用 **Selector** 是 Java NIO (New I/O) 框架中的一个重要组成部分,主要用于检测一个或多个 **NIO Channel** 的状态,包括但不限于可读、可写、可连接...