Android onFling MotionEvent不会更改
我正在开发一个项目,我正在使用一个在onScroll中移动的ImageView,最近我实现了一个onFling来检测刷卡,但是我刚刚看到当我滑动图片时,onFling中的两个MotionEvents获得相同的X值使用getX()。 但在视线外滑动时不会发生这种情况。
为什么会发生这种情况?
有没有办法解决它?
谢谢!
这就是我想要实现的:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
final int SWIPE_MIN_DISTANCE = 120;
final int SWIPE_MAX_OFF_PATH = 250;
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH){
return false;
}
// right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > Common.SWIPE_THRESHOLD_VELOCITY) {
if (Common.search_submissions_ID < Common.search_submissions.length()) {
Common.search_submissions_ID = Common.search_submissions_ID + 1;
finish();
startActivity(getIntent());
} else {
//Update
}
}
// left to right swipe
else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > Common.SWIPE_THRESHOLD_VELOCITY) {
if (Common.search_submissions_ID > 0) {
Common.search_submissions_ID = Common.search_submissions_ID - 1;
finish();
startActivity(getIntent());
}
}
} catch (Exception e) {
}
return false;
}
PD:SWIPE_THRESHOLD_VELOCITY = 4500
链接地址: http://www.djcxy.com/p/16215.html