gpt4 book ai didi

具有不同背景颜色的 Android 按钮

转载 作者:IT老高 更新时间:2023-10-28 21:35:53 26 4
gpt4 key购买 nike

我想使用选择器 xml 文件更改按钮的背景颜色。我的方法基本上是本页底部示例中的方法:http://developer.android.com/guide/topics/resources/color-list-resource.html

我有一个 res/color/button_text.xml,看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>

我的布局包含以下代码:

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
**android:background="@color/button_text"** />

(** 只是为了告诉你我使用 android:background 而不是 android:textcolor)

此代码崩溃。它说“二进制 XML 文件第 4 行标签需要 'drawable' 属性或定义可绘制的子标签。但是如果我按照上面链接中的描述使用 android:textColor 尝试它,它工作正常。所以它必须是背景问题。我如果没有必要,不想创建一个 9patch-png(基本上我只需要一个“可点击”矩形,所以我使用一个带有彩色背景的按钮)

最佳答案

由于您的错误状态,您必须为项目定义 drawable 属性(由于某种原因,它在涉及背景定义时是必需的),所以:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
<item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
<item android:drawable="@color/black"/> <!-- default -->
</selector>

还要注意 drawable 属性不接受原始颜色值,因此您必须将颜色定义为资源。在 res/values 文件夹中创建 colors.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000</color>
<color name="blue">#00f</color>
<color name="red">#f00</color>
</resources>

关于具有不同背景颜色的 Android 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com