本文介绍了如何获得GestureDetector正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个code至今在我的活动:
I have this code so far in my Activity:
private class SwipeGestureDetector extends SimpleOnGestureListener {
// Swipe properties, you can change it to make the swipe
// longer or shorter and speed
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 200;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
float diffAbs = Math.abs(e1.getY() - e2.getY());
float diff = e1.getX() - e2.getX();
Log.d("MainDisplayActivity", "Gesture class is running");
if (diffAbs > SWIPE_MAX_OFF_PATH)
return false;
// Left swipe
if (diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
MainDisplayActivity.this.onLeftSwipe();
// Right swipe
} else if (-diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
MainDisplayActivity.this.onRightSwipe();
}
} catch (Exception e) {
Log.e("YourActivity", "Error on gestures");
}
return false;
}
}//end of SwipeGestureDetector class
//methods called by SwipeGestureDetector when the approrpiate swipes occured
private void onLeftSwipe() {
Toast.makeText(this, "Successfully have the swipe working for left", Toast.LENGTH_SHORT).show();
}
private void onRightSwipe() {
Toast.makeText(this, "Successfully have the swipe working for right", Toast.LENGTH_SHORT).show();
}
和我有这样的全球性:私人GestureDetector gestureDetector;
and I have this global: private GestureDetector gestureDetector;
和的onCreate
我有这样的,因为它是我见过的人做的:
and on onCreate
I have this because its what I have seen people do:
gestureDetector = new GestureDetector(this, new SwipeGestureDetector());
((LinearLayout)findViewById(R.id.parent_main_display)).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
});
不是真的知道我做错了,但什么也没发生,当我刷卡。任何想法?
Not really sure what I am doing wrong, but nothing is happening when I swipe. Any ideas?
推荐答案
您应该ovveride下一
You should ovveride the next
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
也onFling应返回true
also onFling should return true
这篇关于如何获得GestureDetector正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!