【问题标题】:How do I make the button change color when it's pressed?如何让按钮在按下时改变颜色?
【发布时间】:2014-10-28 17:08:48
【问题描述】:

我对 android 编程有点陌生,所以我真的不知道我在做什么。我想让按钮在按下时改变颜色。到目前为止,这是我的按钮的样子:

<Button
    android:id="@+id/c1"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="#FFFFFF" >

</Button>

我必须添加什么才能使它在按下时改变颜色?

【问题讨论】:

标签: android xml button colors


【解决方案1】:

定义按钮选择器并将其设置为按钮的background

选择器:

button_selector.xml

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

<item android:state_focused="true" android:drawable="@color/pressed_button_clr"></item>
<item android:state_pressed="true" android:drawable="@color/pressed_button_clr"></item>
<item  android:drawable="@color/default_button_clr"></item>
</selector>

xml代码是:

<Button
    android:id="@+id/c1"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="@drawable/button_selector" >

</Button>

【讨论】:

  • 如果对您有帮助,请接受答案.. :)
【解决方案2】:

因为您想定义自己的背景颜色,所以按钮看起来好像没有被点击,如果您删除您定义的背景颜色,它会看起来像是点击。为了定义您自己的背景颜色,您必须制作一个自定义按钮

创建自定义按钮

创建与您想要的颜色相匹配的形状

按钮点击形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke 
        android:width="1dp" 
        android:color="#505050"/>

    <size android:width="180dp"
        android:height="40dp"/>

    <solid android:color="#505050"/>

</shape>

按钮普通形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="1dp"/>

    <size android:width="180dp"
     android:height="40dp"/>

     <solid android:color="#4ddedede"/>

</shape>

创建这两个形状后,创建按钮以使用它们

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="false" android:drawable="@drawable/button_normal"/>
    <item android:state_pressed="true" android:drawable="@drawable/button_clicked"/>
</selector>  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2018-11-12
    • 1970-01-01
    相关资源
    最近更新 更多