如何在Android XML选择器中设置alpha?解决禁用图标变灰的异常问题
解决Selector设置Alpha时的NumberFormatException问题
嘿,我一眼就发现你代码里的问题啦!你的XML语法写错了——你把android:alpha属性放在了<item>标签的外部,而不是作为标签的属性直接写在标签内部。系统会把标签里的文本内容当成资源ID去解析,自然就抛出NumberFormatException了。
正确的Selector写法
把android:alpha移到<item>标签的属性里,像这样:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:alpha="0.5" /> <item android:state_enabled="true" android:alpha="1.0" /> </selector>
更简洁的写法
其实你还可以省略android:state_enabled="true"的item,因为Selector会默认匹配最后一个未指定状态的item,简化后代码如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:alpha="0.5" /> <item android:alpha="1.0" /> </selector>
这样修改后,当图标未启用时就会自动置灰,启用时恢复正常透明度,也不会再抛出异常啦!
内容的提问来源于stack exchange,提问作者Peri Hartman
相关产品推荐
相关产品推荐

