我需要实现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;
}
});
答案 0 :(得分:3)
您可以使用GestureDetector(例如SimpleOnGestureListener)来区分:
onDown()
,类似于ACTION_DOWN
onSingleTapConfirmed()
或onSingleTapUp()
,类似于ACTION_UP
onLongPress()
适用于长篇新闻事件答案 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;
}
触摸布尔值在渲染线程中进一步使用。