3

我需要实现 onItemLongPressListener 和 onTouchListener。它们不能一起工作,所以我必须从其他的 ontouch 侦听器返回 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;
                }
            });
4

2 回答 2

3

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

于 2013-03-09T18:06:32.187 回答
2

我刚刚为我的项目完成了这项工作,部分基于你现有的代码(顺便感谢你)。我这样做的方式不是“else”,而是我做了一个“else if”,如下所示。

@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;
}

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

于 2013-04-13T22:45:07.210 回答