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中引用上面定义的样式
<?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>
效果如下,当焦点在文本框时,文字变为高亮显示
分享到:
相关推荐
为了在不同状态下显示不同的图像,我们可以使用`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项目中,开发者可能通过创建自定义选择器来实现界面元素的交互...
- **StateListDrawable**: 一种特殊的 Drawable,可以根据控件的状态(如激活状态、选中状态)改变其外观。 **2.4 创建动态控件** 在某些场景下,可能需要根据运行时的数据动态创建控件。这涉及到使用 ...
总的来说,“EditTextClearDemo”这个项目是关于如何在Android应用中实现一个带有清除功能的`EditText`组件的实例,它涵盖了`EditText`的基本使用、添加图标的技巧以及响应用户交互的方法,对于初学者来说是一个很好...
可以使用StateListDrawable或自定义颜色变化来实现这一效果。 ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/...