Via ;http://blog.csdn.net/leasystu/article/details/7250885
我们在定义一个drawable的时候可以通过xml定义的drawable对象。它使得一个图片能在不同的状态下显示不同的图案,比如一个Button,它有pressed,focused,或者其它状态,通过使用state list drawable,你就可以为每种状态提供不同的图片。
先看一个范例:
XML file saved at res/drawable/button.xml
:
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:state_enabled="true" android:state_window_focused="false"
- android:drawable="@drawable/button_pressed" /> <!-- pressed,enable等多个属性 -->
- <item android:state_focused="true"
- android:drawable="@drawable/button_focused" /> <!-- focused -->
- <item android:state_hovered="true"
- android:drawable="@drawable/button_focused" /> <!-- hovered -->
- <item android:drawable="@drawable/button_normal" /> <!-- default -->
- </selector>
This layout XML applies the state list drawable to a Button:
- <Button
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:background="@drawable/button" />
android:drawable 放一个drawable资源
android:state_pressed 是否按下,如一个按钮触摸或者点击。
android:state_focused 是否取得焦点,比如用户选择了一个文本框。
android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性
android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
android:state_checked 被checked了,如:一个RadioButton可以被check了。
android:state_enabled 能够接受触摸或者点击事件
android:state_activated 被激活(这个麻烦举个例子,不是特明白)
android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了
注意:如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。
相关推荐
### Android: Drawable.xml 相关应用详解 #### 一、Drawable资源文件的使用与功能介绍 在Android开发中,`drawable.xml` 文件是用于定义UI元素的重要资源之一,它可以为应用提供灵活多变的视觉效果。例如,按钮、...
Android 中的 Drawable 资源详解及简单实例 Android 中的 Drawable 资源是一种非常重要的资源,它可以用来定义视图的外观样式,如背景、边框、形状等。Drawable 资源可以分为两大类:一类是 Vector Drawable,一类...
Android中的Selector的用法详解及实例 Android中的Selector是一种强大的工具,可以根据不同的状态来改变控件的背景图片或文字颜色。Selector的用法非常灵活,开发者可以根据需要来设置不同的状态和对应的图片或颜色...
### Android XML Attribute详解 在Android开发中,XML文件扮演着非常重要的角色,特别是在定义界面布局、样式、动画等方面。为了帮助开发者更好地理解Android中的各种XML属性及其用途,本文将详细介绍部分核心XML...
在drawable.xml文件中,颜色通常以`<drawable>`标签的形式表示,并通过其`name`属性给颜色一个别名。颜色值本身是一个十六进制数,它由一个前缀`#`和六位十六进制数字组成,代表红、绿、蓝三个颜色通道的强度。例如...
<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...
### Android中Selector标签的使用详解 #### 一、引言 在Android开发中,为了提升应用界面的交互体验,开发者经常需要对控件的状态进行定制化的处理。其中一个常用的技术手段就是利用`selector`标签来定义控件的...
其中,`<item>`标签定义了每个状态下的drawable资源,`android:state_...`属性用于指定状态,`android:drawable`用于指定该状态下显示的图像。 3. **Selector的状态** - `android:state_pressed`: 当View被按下时...
Android Shape 使用详解 Android 中的 Shape 是一个非常重要的概念,它用于定义控件的显示属性,如颜色、渐变、描边、圆角、间隔等。今天,我们将详细地介绍 Shape 的使用方法和相关知识点。 首先,看下面的代码:...
<item android:state_focused="true" android:drawable="@drawable/button_focused"/> <item android:drawable="@drawable/button_normal"/> <!-- main.xml --> android:src="@drawable/selector" android:...
在res/drawable文件夹下,Android还支持更高级的图形资源,如可拉伸图形(drawable-ninepatch)、状态列表图形(state-list drawable)、形状图形(shape drawable)等。这些图形资源的使用,可以大幅提高应用的界面质量和...
<item android:drawable="@drawable/pressed_color" android:state_pressed="true" /> <item android:drawable="@drawable/normal_color" /> ``` 在布局文件中,我们将Shape和Selector应用到Button上: ```xml ...
在Android应用开发中,ViewPager是一个常用的组件,常用于展示可滑动的页面集合。然而,原生的ViewPager并不支持自动循环播放,这对于制作广告条这样的功能来说是个限制。本篇文章将详细讲解如何利用ViewPager实现...
### Android资源文件详解 在开发Android应用的过程中,资源文件扮演着至关重要的角色。它们不仅能够帮助开发者高效地管理各种资源,还能确保应用的界面统一、美观。本文将深入探讨Android项目中常见的几种资源文件...
<item android:state_checked="true" android:drawable="@drawable/radio_choose"/> <!--普通状态--> <item android:drawable="@drawable/radio_unchoose"/> ``` 然后,我们可以在activity_radio_group.xml中...
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <item android:state_focused="true" android:drawable="@drawable/button_focused" /> <item android:state_selected=...
### 安卓资源文件详解 #### 资源文件的重要性 Android资源文件是应用程序不可或缺的部分,它们包含了程序运行过程中所需的各类静态数据与辅助文件。这些文件不仅有助于减少代码量,提高程序的可维护性,还能使得...