一.创建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/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>
二.使用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
<?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 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"
相关推荐
这就是`selector`选择器的作用,它可以帮助我们在不同状态下切换图片,并保持住相应的状态。现在,我们将详细探讨如何在ListView、Button和ImageView中应用selector来实现这一功能。 首先,让我们了解什么是`...
### Java NIO Selector选择器详解 #### 一、Selector概览及作用 **Selector** 是 Java NIO (New I/O) 框架中的一个重要组成部分,主要用于检测一个或多个 **NIO Channel** 的状态,包括但不限于可读、可写、可连接...
### 浅谈Android的Selector背景选择器 #### 一、引言 在Android开发中,为了提高用户体验,经常需要对控件的外观进行定制化处理,特别是在不同的交互状态下展示不同的视觉效果。`Selector`作为Android中一个非常...
Android 仿京东商城底部布局的选择效果(Selector 选择器的实现) Android 仿京东商城底部布局的选择效果是指在 Android 应用程序中实现京东商城底部布局的选择效果,主要是通过 Selector 选择器来实现的。Selector ...
SelectorGadget是一款强大的浏览器插件,专为网页开发者和设计师设计,主要功能是自动化生成CSS选择器。在网页开发过程中,我们经常需要精确地定位HTML元素以便进行样式修改或JavaScript操作,而SelectorGadget则能...
CSSSelector生成器是一款帮助开发者快速、准确创建CSS选择器的工具,尤其对那些不熟悉高级选择器或需要优化选择器效率的开发者而言,它具有很大的价值。 **JavaScript开发与CSS相关** JavaScript,一种广泛使用的...
在Android开发中,选择器(Selector)是一种非常重要的机制,用于定义View在不同状态下的显示样式,如按下、聚焦、默认等。`android selector注入器` 提供了一种高效且便捷的方式来管理这些状态选择器,使得开发者...
** Mulit-Image-Selector:一个仿微信的Android图片选择器 ** 在移动应用开发中,特别是在社交应用中,用户经常需要选择一张或多张图片进行上传或分享。`Mulit-Image-Selector`是一个专为Android平台设计的开源类库...
在Objective-C中,Class、Selector(选择器SEL)和函数指针(IMP)是三个非常重要的概念,它们构成了Objective-C动态特性的基础。下面将详细解释这三个概念以及它们之间的关系。 1. Class(类类型): 在Objective...
标题中的"Selector"一词在IT领域通常指的是选择器,它是编程语言或样式表中用于选取元素的关键概念。在Web开发中,特别是CSS(层叠样式表)中,选择器用于定位HTML或XML文档中的特定元素,以便应用样式。同时,选择...
Java NIO(非阻塞I/O)是一种在Java中处理I/O操作的高效方式,它引入了选择器(Selector)的概念,使得一个单独的线程可以监控多个输入输出通道(Channels),大大提高了并发处理能力。在这个"java基于NIO选择器...
之后,开发者可以在代码中调用提供的API,设置选择器的参数,如最大选择数量、图片质量等,并启动选择器。选择完成后,框架会回调结果,开发者可以获取到用户选择的图片路径,进一步处理和展示这些图片。 值得注意...
本篇文章将深入探讨Android中的Selector背景选择器的使用方法。 首先,让我们了解Selector的基本结构。Selector是XML文件,通常存储在项目的res/drawable目录下。以下是一个简单的Selector示例: ```xml <selector...
选择器模式(Selector Pattern)是一种设计模式,它允许在运行时动态地选择算法或行为,提供了一种灵活的方式来应对多态性。在 Laravel 开发中,这种模式可以被用来处理用户级别的参数或运行时的条件判断,以实现更...
教程内容涵盖:阻塞和非阻塞IO、Channel通道、Buffer缓冲区、Selector选择器、Pipe管道、FileLock文件锁,以及Path、Files、异步FileChannel和Charset字符编码等,并通过一个多人聊天室的综合案例,把所有的NIO知识...
css-selector-tokenizer, 解析和 stringifies CSS选择器 CSS模块:CSS选择器标记器解析和 stringifies CSS选择器。import Tokenizer from "css-selector-tokenizer";let input = "a#content.act
而CSS选择器(CSS Selector)是Selenium进行页面元素定位的一种非常重要的方式。本文将详细介绍如何使用Selenium配合CSS选择器来进行页面元素的精准定位。 #### 二、CSS选择器简介 CSS选择器是用于匹配文档中的...
在本文中,我们将深入探讨如何使用FPGA(Field-Programmable Gate Array)技术来实现一个2选1的多路选择器。FPGA是一种可编程的集成电路,它允许设计者根据需要配置逻辑门、触发器和其他基本逻辑单元,以实现各种...
@ gizt / selector-快速和简单的JSON选择器 @gizt/selector是一个快速直观的JSON选择器(语法基于JSON表示法和glob)。 您可以在这里在线尝试 快速开始 npm install @gizt/selector 用法 // es6/browser import ...