StateListDrawable用于组织多个Drawable对象,顾名思义,StateList,它会随着目标组件状态(比如得到/失去焦点,勾选/未勾选,可用/不可用,按下/未按下,等等)的改变而自动切换
StateListDrawable对象的XML文件的根元素是<selector.../>,可包含多个<item.../>元素
下面是一个高亮显示正在输入的文本框的例子
创建一个普通Android xml文件,根元素选择selector,文件名为my_image,创建完以后把文件移动到res/drawable-mdpi文件夹下
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused = "true"
- android:color = "#f44"
- />
- <item android:state_focused = "false"
- android:color = "#111"
- />
- </selector>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused = "true" android:color = "#f44" /> <item android:state_focused = "false" android:color = "#111" /> </selector>
下面的主界面xml中引用上面定义的样式
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <EditText
- android:id="@+id/editText1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@drawable/my_image"
- android:ems="10" />
- <EditText
- android:id="@+id/editText2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@drawable/my_image"
- android:ems="10" />
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/my_image" android:ems="10" /> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/my_image" android:ems="10" /> </LinearLayout>
效果如下,当焦点在文本框时,文字变为高亮显示
发表评论
-
初学Android,Intent概要(十一) .
2012-08-11 14:01 807下面内容我觉得归纳的很好,我看了几本书,包括一些英文的,写 ... -
初学Android,字符串,数字,尺寸,数组资源(十二) .
2012-08-11 00:09 1368下面是使用字符串,数字,尺寸,数组资源的例子,挺好,一个例子已 ... -
初学Android,使用Drawable资源之使用LayerDrawable资源(十四)
2012-08-03 10:27 782LayerDrawable,系统将会按这些Drawable对象 ... -
初学Android,使用Drawable资源之使用ShapeDrawable资源(十五)
2012-08-03 14:40 1122ShapeDrawable比较简单,用来定义一个基本几何图形, ... -
初学Android,使用Drawable资源之使用ClipDrawable资源(十六)
2012-08-03 16:23 1092ClipDrawable代表从其它位图上截取一个"图 ... -
初学Android,使用Drawable资源之使用AnimationDrawable资源(十七)
2012-08-06 11:34 941这次学学怎么使用动画资源,AnimationDrawable, ... -
初学Android,使用自定义的XML资源(十八)
2012-08-06 15:16 694使用自定义的XML资源,这当然也必须是Android的一个功能 ... -
初学Android,使用菜单资源(十九)
2012-08-07 17:16 714Android里面也可用XML定义菜单资源,菜单分两种,一种是 ... -
初学Android,使用样式(style)资源(二十)
2012-08-09 09:57 780在Android里面,样式的概念跟网页中CSS样式表的概念相似 ... -
初学Android,使用主题(Theme)资源(二十一)
2012-08-09 11:06 757主题跟样式类似,也是放在路径/res/values下同样以&l ... -
初学Android,使用属性(Attribute)资源(二十二)
2012-08-09 14:47 791感觉这篇写的不错,拿来转了 http://wujia ... -
初学Android,使用原始资源(二十三)
2012-08-09 17:09 810原始资源就是Android没有为之提供专门支持的资源文件,可以 ... -
ImageAdapter和PopupWindow的使用
2012-08-09 17:35 1160引用public class SamplePopup exte ... -
requestWindowFeature类
2012-08-09 17:21 749requestWindowFeature可以设 ... -
android学习笔记(二)
2012-08-08 12:00 719Activities and Tasks 一个活动能启动另一 ... -
Android之SurfaceView学习(一)
2012-08-07 16:57 638首先我们先来看下官方API对SurfaceView的介绍 S ... -
adnroid 学习笔记(一)
2012-08-06 16:10 631今天开始学习android,在配置资源文件时遇到的问题,在这里 ...
相关推荐
为了在不同状态下显示不同的图像,我们可以使用`StateListDrawable`,在`res/drawable`目录下创建XML文件来定义状态选择器。例如,定义一个包含正常和按下状态的图像: ```xml <selector xmlns:android=...
7. **可绘制资源**:Android的Drawable类用于表示图形资源,如位图(BitmapDrawable)、形状(Shape Drawable)和状态选择器(StateListDrawable)。状态选择器可以根据组件的状态(如按下、选中等)显示不同的图像...
这可以通过自定义`StateListDrawable`或使用`Shape Drawable`配合`selector`来实现,也可以借助第三方库如`android-transition`简化操作。 5. **UI框架**:选择一个好的UI框架能显著提高开发效率并保证界面的美观性...
在Android中,选择器通常指的是Drawable对象中的StateListDrawable,它可以根据组件的状态(如按下、聚焦、默认等)显示不同的图像。在SelecterSample项目中,开发者可能通过创建自定义选择器来实现界面元素的交互...
总的来说,“EditTextClearDemo”这个项目是关于如何在Android应用中实现一个带有清除功能的`EditText`组件的实例,它涵盖了`EditText`的基本使用、添加图标的技巧以及响应用户交互的方法,对于初学者来说是一个很好...
- **StateListDrawable**: 一种特殊的 Drawable,可以根据控件的状态(如激活状态、选中状态)改变其外观。 **2.4 创建动态控件** 在某些场景下,可能需要根据运行时的数据动态创建控件。这涉及到使用 ...
可以使用StateListDrawable或自定义颜色变化来实现这一效果。 ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/...