可以通过覆盖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
。
答案 0 :(得分:1)
在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);
}