bha*_*rat 5 android android-gesture
我GestureDetector.OnGestureListener在 Activity 中实现,其覆盖的 onTouchEvent 是:
public boolean onTouchEvent(MotionEvent event) {
//gestureDetector is new GestureDetector(this,this) in Activity's onCreate()
this.gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
使用 MotionEvent 类中的 getEdgeFlags 进行边缘检测,如下所示:
@Override
public boolean onDown(MotionEvent e) {
final int edgeInfo = e.getEdgeFlags();
return ((edgeInfo == MotionEvent.EDGE_LEFT) || (edgeInfo == MotionEvent.EDGE_RIGHT)) ||
(edgeInfo == MotionEvent.EDGE_BOTTOM);
}
Run Code Online (Sandbox Code Playgroud)
但是 onDown 总是返回 false。我也试过改变
final int edgeInfo = e.getEdgeFlags(); 到
final int edgeInfo = e.getAction() & e.getEdgeFlags();
以及final int edgeInfo = e.getActionMasked() & e.getEdgeFlags();以防万一。
却无济于事。
我使用 API 错了吗?
有没有更好的替代 getEdgeFlags() 的方法?
即使 onDown 返回 false,在 logcat 中,我仍然可以看到其他
GestureDetector.OnGestureListener被解雇的方法,为什么?
如果有的话,一个小片段会有所帮助。
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |