【发布时间】:2015-02-04 18:10:36
【问题描述】:
我创建了一个可以拖动的视图。这是我的来源:
imageView.setOnTouchListener(new View.OnTouchListener() {
private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int)(event.getRawX()-initialTouchX);
params.y = initialY + (int)(event.getRawY()-initialTouchY);
windowManager.updateViewLayout(imageView, params);
return true;
}
return false;
}
});
如您所见,通过触摸 imageview 并四处平移,视图本身会移动。现在我的问题是,我想区分移动视图和实际单击视图。我已经尝试了 stackoverflow 上显示的多种方法,但找不到任何解决我问题的方法。
如果图像视图被点击,它应该调用一个方法。否则,如果只是触摸移动视图,则不应调用该方法。
有人给点建议吗?
提前致谢
【问题讨论】:
标签: android ontouchlistener touch-event