ImageView,选择器和点击,长按一次

时间:2012-10-17 05:41:04

标签: selector android-imageview onlongclicklistener

我有一些ImageView

右箭头按钮的选择器是:

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

    <item android:drawable="3" android:state_pressed="true"/> <!-- pressed -->
    <item android:drawable="1" android:state_enabled="false"/> <!-- enabled -->
    <item android:drawable="2"/> <!-- default -->

</selector>

123如下图所示 - 1用于左箭头按钮,但右边的一个看起来与相反的方向)。

现在我的问题是:

  1. 当用户点击时,我使用setEnable()更改其状态。它有效。
  2. 当用户再次长按时,我会使用setEnable()更改其状态。但是在用户松开手指后,该按钮会保持状态为图像#3
  3. 我尝试过:cancelLongPress()clearFocus()invalidate()post(Runnable)postInvalidate()refreshDrawableState() ......但它们无效。< / LI>

    该应用使用最低SDK 4(Android 1.6)。你能帮帮我吗?

    谢谢,

1 个答案:

答案 0 :(得分:0)

临时解决方案:

...
imageView.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            v.postDelayed(new Runnable() {

                @Override
                public void run() {
                    v.setEnabled(...);
                }// run()
            }, 200); // 200 ms is enough
        }

        return false;
    }// onTouch()
});