我正在使用android的拖放api。我希望我的观点能够移动,即运动不应该是连续的。假设单位为50像素。所以我希望我的视图每隔50个像素移动一次,而不是介于两者之间。
当我按照以下方式进行拖动时会有很多闪烁。 (不仅仅是闪烁,整个事情都没有按照我期望的方式发挥作用)
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_LOCATION:
View view = (View) event.getLocalState();
if(event.getX() > view.getX()){
view.setX(view.getX() + 50);
} else if (event.getX() < view.getX()){
view.setX(view.getX() - 50);
}
break;
default:
break;
}
return true;
}
任何帮助将不胜感激!
答案 0 :(得分:0)
此代码应该可以正常工作:
final int SIZE = 50;
View view;
@Override
public boolean onTouchEvent(MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:
setX(event.getX()/SIZE);
setY(event.getY()/SIZE);
return true;
}
return super.onTouchEvent(event);
}