Android按钮设置按下不会更改动画

Android按钮设置按下不会更改动画,android,button,background,Android,Button,Background,我想滥用一个标准按钮作为切换按钮,但只有当它长按。因此,我首先将默认样式替换为按下、聚焦和默认状态的背景图像 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawa

我想滥用一个标准按钮作为切换按钮,但只有当它长按。因此,我首先将默认样式替换为按下、聚焦和默认状态的背景图像

<?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/btn_pressed" /> <!-- pressed -->
        <item android:state_focused="true" android:drawable="@drawable/btn_focused" /> <!-- focused -->
        <item android:drawable="@drawable/btn_default" /> <!-- default -->

    </selector>
如果我长时间单击,按钮不会将其背景更改为按下的状态。我怎样才能一直按着按钮?使用切换按钮不起作用,因为正常的单击操作应该是可能的。如果长时间按下按钮,按钮将被“锁定”


非常感谢

所以它终于起作用了。相比之下,这是正确的方法,可以使按钮状态深思熟虑地真实

  @Override
    public boolean onLongClick(View view) {
        final Button btn = (Button) view;
        btn.post(new Runnable(
            public void run() {
                btn.setBackgroungResource(R.drawable.btn_pressed);
            }
        }

        return false;
    }

长时间单击替换btn.setPressed(true);使用btn.SetbackgroundResource(R.drawable.btn_按下);非常感谢,它起作用了。我不确定这是否是“干净”的方式,但到目前为止,它给了我想要的结果。
  @Override
    public boolean onLongClick(View view) {
        final Button btn = (Button) view;
        btn.post(new Runnable(
            public void run() {
                btn.setBackgroungResource(R.drawable.btn_pressed);
            }
        }

        return false;
    }