改变按钮的颜色

时间:2014-04-21 21:07:25

标签: android

如何使用xml文件更改按钮的颜色?我尝试使用android:background="@android:color/black",但据我所知,它仅适用于黑白。谁可以给我解释一下这个。为什么不android:background="@android:color/blue"

4 个答案:

答案 0 :(得分:0)

您可以使用如下选择器文件执行此操作:

<item android:state_pressed="true" >
    <shape>
        <gradient
            android:startColor="@android:color/yellow"
            android:endColor="@android:color/yellow"
            android:angle="270" />
        <stroke
            android:width="3dp"
            android:color="@android:color/grey" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

<item android:state_focused="true" >
    <shape>
        <gradient
            android:endColor="@android:color/orange"
            android:startColor="@android:color/orange"
            android:angle="270" />
        <stroke
            android:width="3dp"
            android:color="@android:color/grey" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

<item>        
    <shape>
        <gradient
            android:endColor="@android:color/blue"
            android:startColor="@android:color/blue"
            android:angle="270" />
        <stroke
            android:width="3dp"
            android:color="@android:color/grey" />
        <corner
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>

将文件命名为custom_button.xml,然后在实际按钮中命名:

background="@drawable/custom_button"

参考: Standard Android Button with a different color

答案 1 :(得分:0)

更改按钮的颜色我有2个答案: -

  1. 你可以使用android:background =“#0000ff”获取蓝色和颜色代码你可以访问http://html-color-codes.info/

  2. 我建议使用xml drawables来完成数据,你将创建一个onclick状态drawable和normal状态drawable然后你将在一个drawable中使用它们。这样你就可以在onclick上给出不同的颜色。

  3. THX。

答案 2 :(得分:0)

您必须为项目定义可绘制的属性(出于某种原因,在背景定义时需要它),所以:

  <?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>

您还可以查看this

答案 3 :(得分:0)

您可以在res/values/文件夹下创建一个文件,并将其命名为color.xml。然后在这个文件中添加你的颜色:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blue" >#0000ff</color>
<color name="red" >#ff0000</color>
<color name="green">#00ff00</color>
</resources>

然后在xml布局中,您可以指定所需的颜色:

android:background="@color/blue"

而不是

android:background="@android:color/blue"

注意:您可以将此tutorial视为在按钮和视图上使用选择器的高级步骤。