单击时更改按钮颜色

时间:2015-02-22 03:36:44

标签: java background

好的,当我在按钮上使用setBackground时,按钮在单击时不再显示任何反馈。我怎样才能解决这个问题。我只是希望按钮变暗或某种类型的反馈,以便用户知道它被点击了。

希望这是有道理的!

3 个答案:

答案 0 :(得分:2)

创建此drawable并将其绑定到按钮背景

<selector 
xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/YOURIMAGE" />
 <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/gradient" />
 <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/gradient" />
 <item android:drawable="@drawable/YOURIMAGE" />
 </selector>

将其应用于按钮

android:background="@drawable/button"

答案 1 :(得分:1)

您需要在XML中创建一个选择器,并将其链接到state_pressed =“true”。在项目内部,您可以指定对象的形状。我已经链接到Android开发者网站,因此您也可以看到其他可用选项。

        <item android:state_pressed="true">
            <shape>
                <solid android:color="#73E5E4D7" />
            </shape>
        </item>
        <item>
            <shape>
                <solid android:color="#E6E5E4D7" />
            </shape>
        </item>

Android Developer State List

答案 2 :(得分:0)

希望这很好用。首先将您的按钮分配到活动类中的按钮类型引用。 例如:newBtn=(Button) findViewById(R.id.yourButton);

之后设置了该按钮的监听器。

  yourButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            yourButton.setBackgroundColor(int colorCode);
        }
    });