[英]Android gesture from right to left
我需要從右向左捕捉手勢動作,反之亦然(滑動),為什么它不起作用?
public boolean onTouchEvent(MotionEvent event)
{
float x = event.getX();
float y = event.getY();
int action = event.getAction();
int edgeFlags = event.getEdgeFlags();
switch (edgeFlags)
{
case MotionEvent.EDGE_LEFT:
sex=3; break;
case MotionEvent.EDGE_RIGHT:
sex=1;
break;
case MotionEvent.EDGE_TOP:
break;
case MotionEvent.EDGE_BOTTOM:
break;
default:
break;
}
return true;
}
它不適合我-> 如何在Android中檢測向左或向右滑動?
嘗試使用這種方法:
公共抽象類CustomGestureListener擴展了GestureDetector。SimpleOnGestureListener實現了Loggable {
private final View mView;
public CustomGestureListener(View view){
mView = view;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
mView.onTouchEvent(e);
return super.onSingleTapConfirmed(e);
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
onTouch();
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX() < e2.getX()) {
return onSwipeRight();
}
if (e1.getX() > e2.getX()) {
return onSwipeLeft();
}
return onTouch();
}
public abstract boolean onSwipeRight();
public abstract boolean onSwipeLeft();
public abstract boolean onTouch();
}
檢查此文章的完整源例子。
因為僅當用戶將拇指完全移開屏幕邊緣時才返回邊緣標志,因此很少。 您需要轉儲此方法。 而是捕捉他們放下手指的點,保存位置和時間。 當您獲得匹配事件時,請比較位置和時間,並確保這是一次水平移動,並在足夠短的時間內完成。 那將是一次輕掃。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.