4

当按下按钮时,我们如何更改无边框按钮的背景颜色。

我用这个:

    android:background="?android:attr/selectableItemBackground"
    android:text="@string/btn_skip" 

我的按钮在哪里显示我的“strings.xml”中定义的标签“SKIP”。

现在当我测试它时它很好,除了它在按下状态时显示默认的“蓝色”颜色。我希望它与我的 UI 主题的其他元素相匹配,这些元素是“橙色”“#FF8800”

有任何想法吗?

提前谢谢...!

4

4 回答 4

3

而不是使用 ?android:attr/selectableItemBackground 您可以在具有以下内容的文件夹中的 drawable 中创建一个 xml。

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:dither="true">

<item 
    android:state_pressed="true"
    android:drawable="@color/orange"/>
<item 
    android:state_enabled="false"
    android:drawable="@color/default"/>
<item
    android:drawable="@color/default"/>

</selector>

更新:因此您将此文件另存为:可绘制文件夹中的 btn_drawable.xml。

只需将 ?android:attr/selectableItemBackground 替换为 *@drawable/btn_drawable.xml*

于 2013-01-08T14:19:09.000 回答
2

谢谢@Nimish-Choudhary ...!我听从了你的建议。为了清楚起见,我已经进一步解释了所有和我一样的初学者问题。

创建一个名称为“btntransparent.xml”的 xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:dither="true">

<item 
    android:state_pressed="true"
    android:drawable="@color/pressed"/>
<item 
    android:state_enabled="false"
    android:drawable="@color/defaultColor"/>
<item
    android:drawable="@color/defaultColor"/>

</selector>

接下来将颜色“pressed”和“defaultColor”添加到另一个xml说“colors.xml”

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="pressed">#CCFF8800</color>
    <color name="defaultColor">#00000000</color>
</resources>

这里“#CCFF8800”是我的按下状态半透明橙色“#00000000”100% 透明黑色(;-) 那是不可见的)。您可以在Color|找到更多关于颜色代码的信息。安卓开发者

现在将“colors.xml”放在文件夹中,将“btntransparent.xml”放在可绘制文件夹中。

现在最后一步是在按钮中使用它作为

<Button
            android:id="@+id/id_btn_skip"
            android:background="@drawable/transparentbtn"
            android:onClick="skipToMain"
            android:text="@string/btn_skip" />

那应该做的工作......!

小心。
问候,
提早

于 2013-01-11T20:55:30.193 回答
0

如果我理解正确,您可以在 @drawable 中添加新资源,例如 my_ripple.xml

<?xml version="0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
     android:color="#FF8800">
</ripple>

然后只需将其设置为您的背景。

于 2015-05-12T09:32:53.080 回答
-2

在您的主题中添加以下内容:

<item name="android:selectableItemBackground">#FF8800</item>

覆盖默认的蓝色。

于 2013-01-08T19:48:05.917 回答