Android之drawable state各个属性具体解释[通俗易懂]

Android之drawable state各个属性具体解释

大家好,又见面了,我是全栈君。

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

  先看一个范例:

 

<?

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_width="fill_parent"
        android:layout_height="wrap_content"
         android:background="@drawable/button_selector"  
        android:text="点击发送短信"
        android:onClick="sendmial"
        android:layout_alignParentBottom="true"
        />

 

android:drawable 放一个drawable资源
android:state_pressed 是否按下。如一个button触摸或者点击。

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116067.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动手机app开发

    移动手机app开发App开发,是指专注于手机应用软件开发与服务。App是application的缩写,通常专指手机上的应用软件,或称手机客户端。另外目前有很多在线app开发[1]平台,比如应用之星平台很好用。App开发,是指专注于手机应用软件开发与服务。App是application的缩写,通常专指手机上的应用软件,或称手机客户端。苹果公司的Appstore开创了手机软件业发展的新篇章,使得第三方软

    2022年5月9日
    44
  • 均匀分布的期望和方差公式推导_圆上的均匀分布数学期望

    均匀分布的期望和方差公式推导_圆上的均匀分布数学期望数学正态分布和均匀分布问题。正态分布N(μ,σ^2)期望即μ,方差即σ^2区间[a,b]上均匀分布期望为(a+b)/2,方差为(b-a)^2/12为什么计算均匀分布的方差要除以12?注:均匀分布U(a,b)的方差Var(X)=(b-a)^2/12随机变量:U(a,b)X的概率密度函数:f(x)=1/(b-a)a其它x,f(x)=0;X的平均值:E(X)=∫(b,a)xf(x)dx=∫(b,…

    2022年9月18日
    5
  • 为何禁用MyBatis缓存

    为何禁用MyBatis缓存privatevoidputAncestor(CacheKeyrowKey,ObjectresultObject,StringresultMapId,StringcolumnPrefix){if(!ancestorColumnPrefix.containsKey(resultMapId)){ancestorColumnPrefix.put(resul

    2022年5月17日
    44
  • 图的连通性问题专题整理

    图的连通性问题专题整理

    2021年12月8日
    52
  • docker菜鸟教程_k8s部署docker镜像

    docker菜鸟教程_k8s部署docker镜像前记:最近跟着哔站码神之路做了一个SpringBoot练手项目,第一次操作碰到了很多困难和问题,尤其是在部署部分,走了很多弯路,这里写下自己的部署过程,供大家参考,也欢迎大家提出宝贵的意见。哔站码神视频链接:https://www.bilibili.com/video/BV1Gb4y1d7zb?p=36我的网站:www.zhangshidi.space前置知识以下知识点希望大家首先搜一搜,读一读,有一个大概的了解。什么是Linux以及掌握Linux的一些基本指令。什么是docke

    2022年10月19日
    2
  • 【mysql系列】细谈explain执行计划之“谜”

    【mysql系列】细谈explain执行计划之“谜”目录理论Part概念实践Partidselect_typetabletypepossible_keyskeykey_lenrefrowsfilteredExtra总结聊到mysql数据库的优化,大家基本都会谈论explain关键字,确认sql是否使用数据库表中建立的索引,然后讨论sql语句或者索引优化方案等等~,那本篇文章主要谈论一下explain的理解。主要分为理论和实践相结合。理论Part概念我们先了解一下explain语法和相关理论知识。语法:EXPLAINSELECTselect_o

    2025年6月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号