event.getAction()==当setOnTouchListener返回false时,MotionEvent.ACTION_DOWN不为true

时间:2013-03-09 17:48:37

标签: android

我需要实现onItemLongPressListener以及onTouchListener。它们不能一起工作所以我必须从ontouch listner返回false,以便项目长按监听器也被触发。

当我触摸imageButton时,我需要更改图像按钮,但由于我的触摸侦听器返回false,因此图像保持在按下状态。

当我不再按下按钮时,如何更改按钮图像?

imageView.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_DOWN) {
                        imageView.setImageResource(mThumbIdsPressed[position]);
                    } else {
                        imageView.setImageResource(mThumbIds[position]);
                    }
                    recordAudio.startPlaying(position);

                    return false;
                }
            });

2 个答案:

答案 0 :(得分:3)

您可以使用GestureDetector(例如SimpleOnGestureListener)来区分:

答案 1 :(得分:1)

我刚刚为我的项目做了这个,部分基于你现有的代码(顺便说一句,谢谢你)。我这样做的方式不是“其他”我做了“其他如果”,如下所示。

@Override
public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub

    if(event.getAction() == MotionEvent.ACTION_UP){
        touching = false;
    }else if(event.getAction() == MotionEvent.ACTION_DOWN){
        touching = true;
    }

    touch_x = event.getX();
    touch_y = event.getY();

    return true;
}

触摸布尔值在渲染线程中进一步使用。