通过覆盖onTouch
内部的OnTouchListener
可以轻松应用运动事件。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
paramsF.x = initialX + (int)(event.getRawX() - initialTouchX);
paramsF.y = initialY + (int)(event.getRawY() - initialTouchY);
wm.updateViewLayout(view, paramsF);
break;
}
return false;
}
但是要应用fling,我必须实现
GestureDectector
。public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
如何同时实施fling和
ACTION_MOVE
。 最佳答案
在GestureDectector
之后使用MotionEvent.ACTION_MOVE
将使其起作用。
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = paramsF.x;
initialY = paramsF.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_MOVE:
paramsF.x = initialX + (int)(event.getRawX() - initialTouchX);
paramsF.y = initialY + (int)(event.getRawY() - initialTouchY);
mWindowManager.updateViewLayout(v, paramsF);
break;
}
return gestureDetector.onTouchEvent(event);
}
关于android - 在 View 上应用Fling和ACTION_MOVE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33521175/