按下并释放按钮时切换按钮的颜色

时间:2015-06-06 11:43:03

标签: android button colors

我已经看到所有有类似问题的问题,但在所有解决方案中都使用了Drawable。我不想使用Image或Drawable。

我有一个自定义回合Button。默认情况下,其颜色设置为#00796B。 现在,当单击按钮时,它应该将颜色更改为#00695C,并且一旦它被释放,它应该更改回默认颜色。

我需要做什么才能在Button的onClickListener事件中实现我想要的目标?

以下是我的代码。

btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Vibrator mvibrate = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
            mvibrate.vibrate(500);
        }

    });

我想知道,如果有任何方法我们可以使用if条件来检查按钮的状态并根据它做动作?

编辑: - 我已经成功实现了我想要的。谢谢你们的回答和支持。

1 个答案:

答案 0 :(得分:0)

首先在drawable文件夹中创建一个xml,并使用名称button_selector.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="#004F81" />
            <stroke
                android:width="1dp"
                android:color="#222222" />
            <corners
                android:radius="7dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#89cbee"
                android:endColor="#004F81"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#4aa5d4" />
            <corners
                android:radius="7dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

然后在布局xml中,您已将该按钮的按钮设置背景定义为:

<Button
.
.
android:Background="@drawable/button_selector"/>