更改<按钮>颜色onClick?</button>

时间:2014-04-13 17:03:18

标签: java android xml user-interface styling

<Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="Add"
        android:id="@+id/btnAdd"
        android:background="#ff6347"
        android:textColor="#f8f8f8"
        android:layout_marginTop="36dp"
        android:clickable="true"
        android:layout_below="@+id/txtAddress"
        android:layout_centerHorizontal="true"
        android:focusable="true" />

这是我的XML Button元素,它很精致和花花公子......但是我希望它在被按下时被人知道。如果按下时没有按下,我怎么能让它有不同的造型?

2 个答案:

答案 0 :(得分:2)

您可以使用选择器并将drawable用于不同的状态。

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

您还可以使用OnTouchListenerACTION_DOWNACTION_UP为按钮设置颜色

答案 1 :(得分:0)

您想使用选择器作为按钮的背景。基本上你可以为按钮的每个状态定义你想要的不同形状,形状由颜色,圆角半径和其他很酷的东西组成。

保存在res / drawable / button.xml的XML文件:

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

此布局XML将状态列表drawable应用于Button:

<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/button" />