初学Android,使用Drawable资源之使用StateListDrawable资源(十三) .
16lz
2021-01-24
StateListDrawable用于组织多个Drawable对象,顾名思义,StateList,它会随着目标组件状态(比如得到/失去焦点,勾选/未勾选,可用/不可用,按下/未按下,等等)的改变而自动切换
StateListDrawable对象的XML文件的根元素是<selector.../>,可包含多个<item.../>元素
下面是一个高亮显示正在输入的文本框的例子
创建一个普通Android xml文件,根元素选择selector,文件名为my_image,创建完以后把文件移动到res/drawable-mdpi文件夹下
[html] view plain copy print ?- <?xmlversion="1.0"encoding="utf-8"?>
- <selectorxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:state_focused="true"
- android:color="#f44"
- />
- <itemandroid: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中引用上面定义的样式
[html] view plain copy print ?- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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中资源文件夹中添加一个新的图片资源
- Android(安卓)studio 配置Git (第一次提交代码)
- android中修改默认语言
- android桌面文件夹美化
- 如何制作Android(安卓)ROM
- Android(安卓)AIDL(Android(安卓)Interface Definition Language
- android目录结构介绍(寒假学习1)
- Android权限获取机制与常见权限不足问题分析
- Android(安卓)中使用Pull解析XML文件