`

Android之drawable state各个属性详解

 
阅读更多

我们在定义一个drawable的时候可以通过xml定义的drawable对象。它使得一个图片能在不同的状态下显示不同的图案,比如一个Button,它有pressed,focused,或者其它状态,通过使用state list drawable,你就可以为每种状态提供不同的图片。

先看一个范例:

XML file saved at res/drawable/button.xml:

 

[java] view plaincopy
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item android:state_pressed="true" android:state_enabled="true" android:state_window_focused="false"  
  4.           android:drawable="@drawable/button_pressed" /> <!-- pressed,enable等多个属性 -->  
  5.     <item android:state_focused="true"  
  6.           android:drawable="@drawable/button_focused" /> <!-- focused -->  
  7.     <item android:state_hovered="true"  
  8.           android:drawable="@drawable/button_focused" /> <!-- hovered -->  
  9.     <item android:drawable="@drawable/button_normal" /> <!-- default -->  
  10. </selector>  


 

This layout XML applies the state list drawable to a Button:

[java] view plaincopy
 
  1. <Button  
  2.     android:layout_height="wrap_content"  
  3.     android:layout_width="wrap_content"  
  4.     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没有任何的状态说明,那么它将可以被任何一个状态匹配。

 

详细的请看官方的API,那里写的更详细~!http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

分享到:
评论

相关推荐

    android:drawable.xml相关应用

    ### Android: Drawable.xml 相关应用详解 #### 一、Drawable资源文件的使用与功能介绍 在Android开发中,`drawable.xml` 文件是用于定义UI元素的重要资源之一,它可以为应用提供灵活多变的视觉效果。例如,按钮、...

    Android 中API之Drawable资源详解及简单实例

    Android 中的 Drawable 资源详解及简单实例 Android 中的 Drawable 资源是一种非常重要的资源,它可以用来定义视图的外观样式,如背景、边框、形状等。Drawable 资源可以分为两大类:一类是 Vector Drawable,一类...

    Android XML attribute

    ### Android XML Attribute详解 在Android开发中,XML文件扮演着非常重要的角色,特别是在定义界面布局、样式、动画等方面。为了帮助开发者更好地理解Android中的各种XML属性及其用途,本文将详细介绍部分核心XML...

    基于android中的各种颜色在drawable.xml中的值详解

    在drawable.xml文件中,颜色通常以`&lt;drawable&gt;`标签的形式表示,并通过其`name`属性给颜色一个别名。颜色值本身是一个十六进制数,它由一个前缀`#`和六位十六进制数字组成,代表红、绿、蓝三个颜色通道的强度。例如...

    Android中的Selector的用法详解及实例

    Android中的Selector的用法详解及实例 Android中的Selector是一种强大的工具,可以根据不同的状态来改变控件的背景图片或文字颜色。Selector的用法非常灵活,开发者可以根据需要来设置不同的状态和对应的图片或颜色...

    Android selector背景选择器的使用详解

    &lt;item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/pic2" /&gt; &lt;item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3...

    android中使用的标签

    ### Android中Selector标签的使用详解 #### 一、引言 在Android开发中,为了提升应用界面的交互体验,开发者经常需要对控件的状态进行定制化的处理。其中一个常用的技术手段就是利用`selector`标签来定义控件的...

    Android selector的实例详解

    其中,`&lt;item&gt;`标签定义了每个状态下的drawable资源,`android:state_...`属性用于指定状态,`android:drawable`用于指定该状态下显示的图像。 3. **Selector的状态** - `android:state_pressed`: 当View被按下时...

    android shape

    Android Shape 使用详解 Android 中的 Shape 是一个非常重要的概念,它用于定义控件的显示属性,如颜色、渐变、描边、圆角、间隔等。今天,我们将详细地介绍 Shape 的使用方法和相关知识点。 首先,看下面的代码:...

    android学习小知识

    &lt;item android:state_focused="true" android:drawable="@drawable/button_focused"/&gt; &lt;item android:drawable="@drawable/button_normal"/&gt; &lt;!-- main.xml --&gt; android:src="@drawable/selector" android:...

    Android资源文件详解

    在res/drawable文件夹下,Android还支持更高级的图形资源,如可拉伸图形(drawable-ninepatch)、状态列表图形(state-list drawable)、形状图形(shape drawable)等。这些图形资源的使用,可以大幅提高应用的界面质量和...

    Android shape和selector 结合使用实例代码

    &lt;item android:drawable="@drawable/pressed_color" android:state_pressed="true" /&gt; &lt;item android:drawable="@drawable/normal_color" /&gt; ``` 在布局文件中,我们将Shape和Selector应用到Button上: ```xml ...

    Android ViewPager循环播放广告实例详解

    在Android应用开发中,ViewPager是一个常用的组件,常用于展示可滑动的页面集合。然而,原生的ViewPager并不支持自动循环播放,这对于制作广告条这样的功能来说是个限制。本篇文章将详细讲解如何利用ViewPager实现...

    Android资源文件(学习android必备)

    ### Android资源文件详解 在开发Android应用的过程中,资源文件扮演着至关重要的角色。它们不仅能够帮助开发者高效地管理各种资源,还能确保应用的界面统一、美观。本文将深入探讨Android项目中常见的几种资源文件...

    Android基础控件RadioGroup使用方法详解

    &lt;item android:state_checked="true" android:drawable="@drawable/radio_choose"/&gt; &lt;!--普通状态--&gt; &lt;item android:drawable="@drawable/radio_unchoose"/&gt; ``` 然后,我们可以在activity_radio_group.xml中...

    Android 使用selector改变按钮状态实例详解

    &lt;item android:state_pressed="true" android:drawable="@drawable/button_pressed" /&gt; &lt;item android:state_focused="true" android:drawable="@drawable/button_focused" /&gt; &lt;item android:state_selected=...

    安卓资源文件详解

    ### 安卓资源文件详解 #### 资源文件的重要性 Android资源文件是应用程序不可或缺的部分,它们包含了程序运行过程中所需的各类静态数据与辅助文件。这些文件不仅有助于减少代码量,提高程序的可维护性,还能使得...

Global site tag (gtag.js) - Google Analytics