我在android工作.我有一些功能可以通过以下方法完成: –
1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
我也想对那张图片做一个fling().
对于上面的要求我在我的应用程序中实现了onGestureListener和onTouchListener,但这些都无法正常工作. onTouchListener正在运行,但onGestureListener无法正常工作.当我删除onTouchListner代码然后onGestureListener正常工作.
所以请建议我该怎么做.我想在我的应用程序中实现这四种方法.
1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
4. onFling
解决方法:
您可以通过从活动中实现OnGestureListener来覆盖以下方法来实现此目的
// For touch
public boolean onSingleTapUp(MotionEvent event) { return false; }
// For Fling
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
return false;
}
希望这可以帮助.
编辑1:详细说明:
1 GT;从您的活动中实现OnGestureListener
public class MyActivity implements OnGestureListener
2 – ;创建一个GestureDetector实例:
private GestureDetector gestureScanner;
在onCreate:
// Avoid a deprecated constructor
// (http://developer.android.com/reference/android/view/GestureDetector.html)
gestureScanner = new GestureDetector(this, this);
3 GT;覆盖以下方法:
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureScanner.onTouchEvent(event);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
/* on scroll to the next page in story */
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// ...
}
/* on scroll to the previous page in story */
else if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// ...
}
return false;
}
@Override
public boolean onSingleTapUp(MotionEvent event) {
return false;
}
编辑2:处理移动
覆盖onScroll方法看一下细节here
标签:android
来源: https://codeday.me/bug/20190729/1574129.html