Android语言基础教程(144)Android Drawable资源之StateListDrawable资源:别让按钮“死气沉沉”!Android StateListDrawable“摸鱼”指南:

嘿,各位在代码世界里乘风破浪的船长们!有没有那么一瞬间,你觉得自己写的App界面,总差了那么点意思?按钮按下去,像戳一块铁板;输入框点了,也没个反应。用户用起来,感觉像是在跟一个没有感情的机器人在对话。

打住!今天,我就来给你安利一个Android里的“宝藏男孩”——StateListDrawable。这玩意儿说白了,就是一个“状态驱动的皮肤管理器”。它能让你的View(比如Button、ImageView)根据自身的不同状态,自动切换不同的图片或颜色背景,从而实现那种“指哪打哪”、反馈及时的灵动效果。

一、 StateListDrawable是何方神圣?

你可以把它想象成一个超级智能的衣帽间

  • 一个普通的Drawable:就像一件固定穿在身上的衣服,不管你是睡觉、跑步还是开会,它都不变。
  • 我们的主角StateListDrawable:这个衣帽间里挂满了各种衣服。平时你穿休闲装(android:state_pressed="false");一旦你要去跑步(用户按下了按钮,android:state_pressed="true"),它立马给你换上运动服;如果你今天心情不好,不想见人(android:state_enabled="false"),它就给你套上一件灰色的睡衣。

它的真身就是一个XML文件,我们一般把它放在 res/drawable/ 目录下。系统会根据View状态的改变,自动从这个“衣帽间”里挑选最合适的那件“衣服”穿上。

二、 “衣帽间”的运作机制与核心“穿搭法则”

StateListDrawable的规则很简单,就八个字:“按序匹配,首个优先”

它在那个XML文件里,定义了一堆<item>标签,每个item都代表一套“衣服”(一个Drawable资源)和穿这套衣服的“场合”(一组状态条件)。当View的状态发生变化时,系统会从这个列表的顶部到底部依次检查,一旦找到第一个完全匹配当前所有状态条件的item,就会使用它对应的Drawable,并且停止继续查找。

这就引出了最重要的一个“坑”和技巧: item的顺序至关重要!

我们来聊聊那些常用的“状态条件”(穿搭场合):

  • android:state_pressed:是否被按下。这是最常用的,true代表被手指按着。
  • andro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值