加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何设置自定义按钮状态背景颜色?

发布时间:2020-12-14 23:58:57 所属栏目:Java 来源:网络整理
导读:我有一个包含drawable和text的按钮.我希望按钮的背景与提供的正常背景不同(最好是纯色).这很好用,我只是在 XML文件中使用android:background属性并相应地分配颜色.但是,我希望背景在选择或聚焦时变为不同的颜色(状态选择器). 我试图在一个带有定义颜色的dra
我有一个包含drawable和text的按钮.我希望按钮的背景与提供的正常背景不同(最好是纯色).这很好用,我只是在 XML文件中使用android:background属性并相应地分配颜色.但是,我希望背景在选择或聚焦时变为不同的颜色(状态选择器).

我试图在一个带有定义颜色的drawable文件夹中创建一个选择器(在处理按钮文本时效果很好),如下所示:

<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

但资源就在那里.你能不自定义背景状态?如果可以,怎么样?或者我做错了什么?谢谢您的帮助!

解决方法

您发布的xml适用于 color state list,而不是状态列表drawable.试试这个:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" >
        <shape><solid android:color="@color/green"/></shape>
    </item>
    . . .
</selector>

或者,将现有文件放入res / color并像使用任何其他颜色一样使用它.但是,我不记得你是否可以直接使用颜色状态列表作为视图的背景.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读