【发布时间】:2012-12-31 18:40:58
【问题描述】:
我有一个包含可绘制对象和文本的按钮。我希望按钮的背景与提供的正常背景不同(最好是纯色)。这很好用,我只需在 XML 文件中使用 android:background 属性并相应地分配颜色。但是,我希望背景在被选中或聚焦(状态选择器)时变为不同的颜色。
我尝试在一个可绘制文件夹中创建一个具有定义颜色的选择器(在处理按钮文本时效果很好),如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="@color/green" />
<item android:state_focused="true" android:state_pressed="true" android:color="@color/green" />
<item android:state_focused="false" android:state_pressed="true" android:color="@color/green" />
<item android:color="@color/white" />
</selector>
并将此 xml 设置为 android:background 属性,如下所示:
android:background="@drawable/button_state"
但这会导致强制关闭状态:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/button_state.xml from drawable resource ID #0x7f020070
但是资源在那里。不能自定义后台状态吗?如果可以,怎么做?或者我做错了什么?感谢您的帮助!
【问题讨论】:
-
您绝对可以将选择器用作背景可绘制对象。你到底把
button_state.xml放在哪里了? -
我像往常一样把它放在了drawable文件夹中。并且在启动时应用程序强制关闭,因此它不能确认我的 xml 文件
-
或者它可以识别 xml 文件,因为如果我将它与 textColor 属性一起使用,它可以正常工作。只有当我将它与背景属性一起使用时,它才会强制关闭
标签: java android button background