按下时更改按钮背景 - Android

时间:2014-02-27 08:36:24

标签: android xml button colors

我有一个圆形的按钮。我想要做的是按下时更改按钮颜色。有人能告诉我如何将代码添加到后台xml?谢谢。

<shape 
android:shape="rectangle" android:padding="10dp">
<solid android:color="#c0dfba"/>

 <corners
 android:bottomRightRadius="5dp"
 android:bottomLeftRadius="5dp"
 android:topLeftRadius="5dp"
 android:topRightRadius="5dp"/>

</shape>

3 个答案:

答案 0 :(得分:10)

XML创建为res/drawable/button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
    <shape>
        <solid
            android:color="#343434" />
        <stroke
            android:width="1dp"
            android:color="#171717" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
<item>
    <shape>
        <gradient
            android:startColor="#343434"
            android:endColor="#171717"
            android:angle="270" />
        <stroke
            android:width="1dp"
            android:color="#171717" />
        <corners
            android:radius="4dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
   </item>
</selector>

并将Button设置为Background

  <Button
    android:id="@+id/btnValidate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/button"
    android:text="SOS Trasition"
    android:textColor="@android:color/white"
    android:textSize="16sp"
    android:textStyle="bold" />

如果您想要更改Button Text Color,请在XML创建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>

设置此布局XML会将颜色列表应用于View

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

答案 1 :(得分:0)

如果您只想更改按钮的颜色,那么您也可以这样做。但此内容仅在运行时使用。

我知道你是在询问XML文件,但这很简单,但这只是一个简单的建议。

imageview.setColorFilter(Color.RED);

或者您也可以传递任何颜色代码,例如

imageView.setColorFilter(0xFFFF3D60, PorterDuff.Mode.MULTIPLY);

答案 2 :(得分:-3)

在drawable中创建一个xml文件并复制以下行..请务必根据需要更改颜色。 并将xml文件设置为按钮的背景 android:background =“你的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="**your desired color when pressed**" />
<item android:color=" **default color when not pressed**"  />
</selector>