按下时我无法更改按钮的背景

时间:2014-03-18 11:02:23

标签: android

我有一个带背景的按钮。我需要你点击它时,背景改变了,当我发布它时,背景是一样的。

@Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (v.getId()){
            case R.id.button:
               if (v.isEnabled()){
                btn.setBackgroundResource(R.drawable.btn_pressed);
               }else if (!v.isEnabled()){
                   btn.setBackgroundResource(R.drawable.btn_normal);
               }
                break;
        }

        return false;
    }

当我编写此代码时,背景会改变一次,并且始终处于“按下"

状态”

2 个答案:

答案 0 :(得分:8)

将xml创建为drawable。

button_effect.xml

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

现在将此xml设置为按钮背景属性。

答案 1 :(得分:2)

@Override
public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

         btn.setBackgroundResource(R.drawable.btn_pressed);
         break;              
    case MotionEvent.ACTION_UP:

         btn.setBackgroundResource(R.drawable.btn_normal);
         break;
    }
}