- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在安卓系统工作。我有一些功能要通过以下方法完成:-
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
最佳答案
您可以通过覆盖以下方法的 Activity 实现 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> 从您的 Activity 中实现 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> 覆盖以下方法:
@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:用于处理 Move重写onScroll方法查看详情here
关于Android onGestureListener 和 onTouchListner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719741/
我正在尝试创建我的第一个 android 游戏(在 eclipse 中),但我似乎无法让 OnTouchListner 工作,主要是因为我不知道如何或在哪里创建它。我想弄清楚有人点击屏幕的位置。谁能告
我在安卓系统工作。我有一些功能要通过以下方法完成:- 1. MotionEvent.ACTION_DOWN 2. MotionEvent.ACTION_UP 3. MotionEvent.ACTION
我尝试像这样为我的 ImageView 实现 onTouchListner 和 onLongClickListner : imageView.setOnLongClickListener(new Vi
我是一名优秀的程序员,十分优秀!