0
據我所知,如果我的onTouch
方法返回false
,在最初的ACTION_DOWN情況下它不會開始跟蹤移動,並且如果我返回true
,它會。但是我有一些情況,當我需要停止從某個時刻跟蹤移動。我如何實現這一目標?當我的情況持續時,我試圖返回假,但它繼續遇到這種情況。如何取消或停止運動事件?如何在android中完成跟蹤ACTION_MOVE?
這裏是我用於我的拖放應用程序的代碼,當X小於100時,我只想停止拖動。我怎樣才能做到這一點?
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
imageTouchX = (int) event.getRawX() - (int) img.getX();
imageTouchY = (int) event.getRawY() - (int) img.getY();
break;
case MotionEvent.ACTION_MOVE:
int x_cord = (int) event.getRawX();
int y_cord = (int) event.getRawY();
img.setX(x_cord - imageTouchX);
img.setY(y_cord - imageTouchY);
if(img.getX() < 100){
return false;
}
break;
default:
break;
}
return true;
}
在此先感謝。
一個更清晰的方法是消費事件,但不作任何改變,即如果(x_cord - imageTouchX <100){img.setX(x_cord - imageTouchX); img.setY(y_cord - imageTouchY); } – humblerookie
是的,但我仍然可以繼續拖動,當條件不成立...我想更好的辦法是從物體上移除ontouch監聽器,就像Ben Levi說的那樣,但是這仍然會帶來一些問題,因爲我想停止拖動,但是當我再次觸摸圖像時,我想要通過action_down完成一些動作... – Carmine