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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 电脑播放已下载本地的m3u8缓存视频文件「建议收藏」

    经常在网上看视频,不管是电脑上还是手机上!最近几年除了m3u8格式的视频流,其它格式都很少见了。而为啥不用种子下载,是因为要浏览下剧情,看是否喜欢!原先有简单的视频合并工具软件,但现在能用的很少了!连以前下载的缓存都不能合并了!所以在百度了资料和各位大咖的文章后,写下了这篇文章!如果你嫌麻烦请无视!毕竟本人不怎么会编程,纯手动记事本编辑。用Potplayer播放,用HttpFileServer运行服务器。1、首先你当然得知道你下载的文件在哪,把m3u8文件和视频缓存碎片文件夹都复制到电.

    2022年4月13日
  • Redis客户端API

    Redis客户端APIRedis客户端APIclientsetNamexx为客户端设置名字clientlist列出与Redis服务端相连的所有客户端信息。info可查看Redis的所有信息。infomemory只查看Redis内存使用情况。infoclients记录了已连接客户端的信息限制redis连接maxclients、timeoutconfigsettimeout

    2022年6月6日
  • 嵌入式软件工程师待遇怎么样

    嵌入式软件工程师待遇怎么样本来大家选择嵌入式也就是冲着嵌入式的发展前景不错而来,所以在嵌入式这块还是有很多不知道的知识,这些也都要等着老师去给你讲解了,下面先来了解下嵌入式软件工程师待遇怎么样吧。嵌入式软件工程师待遇怎么样:1、应届毕业生如果你是在一线城市的话,有人带你,你自己有比较学的好,那么你的薪资待遇就可以达到6k+,但是不同公司不同待遇,而且不同地区不同的薪资待遇,就像北上广,这些地区薪资待遇是比其他地区高出2k以上,甚至更高的。就像人家阿里,那工资肯定就比其他公司要高的多。所以得看你要去什么地方发展了,但是平均

    2022年9月14日
  • STM32看门狗详解[通俗易懂]

    STM32看门狗详解[通俗易懂]看门狗的作用:防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应,如果出现这种问题,看门狗就会把单片机复位独立看门狗(IWDG):时钟来源:内部低速时钟(LSI),所以用看门狗时不需要配置时钟一般配置过程:寄存器:IWDG_KR:32位寄存器,低16位有效,只写写入0xAAAA,喂狗0x5555,取消IWDG_PR、IWDG_RLR的写保护0xCCCC,启动看门狗IWDG_PR:32位寄存器,低3位有效配置分频系数,4*2^prer.

    2022年4月30日
  • VS开发中遇到无法解析外部符号问题(LNK错误)

    VS开发中遇到无法解析外部符号问题(LNK错误)在VS开发中,很容易遇到外部符号无法解析的问题,而这些问题大部分都是引用库失败导致的,只需正确的加载到了库,这类问题就可以解决了但也存在非库的原因,比如编码问题关于VS编码格式以及VS修改行尾编码格式问题如图解决办法代码文件保存行尾不一致导致的,行尾改为Windows(CRLF)。修改后即可编译通过…

    2022年6月28日
  • PHPStorm使用技巧及快捷键

    PHPStorm使用技巧及快捷键

    2021年10月23日

发表回复

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

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