Android OnGetureListener和onTouchListner
我在安卓系统工作。我有一些功能需要在以下方法上完成:-Android OnGetureListener和onTouchListner,android,Android,我在安卓系统工作。我有一些功能需要在以下方法上完成:- 1. MotionEvent.ACTION_DOWN 2. MotionEvent.ACTION_UP 3. MotionEvent.ACTION_MOVE 我还想对这张图片进行fling() 对于上述要求,我在应用程序中实现了OnTestureListener和onTouchListener,但这些都不能正常工作onTouchListener正在工作,但OnTestureListener不工作。当我将onTouchListnercode
1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
我还想对这张图片进行fling()
对于上述要求,我在应用程序中实现了OnTestureListener
和onTouchListener
,但这些都不能正常工作onTouchListener
正在工作,但OnTestureListener
不工作。当我将onTouchListner
code删除时,则OnTestureListener
工作正常
所以请建议我该怎么做。我想在我的应用程序中实现这四种方法
1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
4. onFling
您可以通过在活动中实现OnTestureListener,覆盖以下方法来实现这一点
// 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> 从活动中实现OnTestureListener
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:用于处理移动
覆盖onScroll方法查看详细信息,正如一位Android开发伙伴的建议一样,他已经追踪到了“刷”或“甩”事件的基本路径。。。编写侦听器或尝试实现OnGetureListener类时,请确保在导入中导入android.view.GestureDetector.OnGetureListener
否则,
OnGesturListener
将使用一个GestureOverlayView的导入,而这似乎不是您想要的。特别是在尝试使用手势应用程序实现手势捕获、导入保存的手势以及在运行时为应用程序创建手势库以进行“预测”时,这些都非常有用用户在后台运行一些奇特的算法,看看谁与用户输入的偏差最小。结果是一系列的位置从操作系统中传来,当用户在平板屏幕上拖动他们短粗的手指时。。。这是一个不同的方法,而不仅仅是试图抓住一个放纵,或长期新闻。这似乎是用户在寻找上面,而不是一些花哨的多按手势捕捉,这种方法使非常简单。这项技术在视频游戏中也非常有用,可能会给任何喜欢开发游戏的人提供一个“后门”。或者在9-5世界中,将支持或管理后门放入移动应用程序中,以对日常用户隐藏一些设置或日志。在这种情况下,你也可以使用上述预期的技术,但是你必须在屏幕上获得一系列的点或位置,这对于任何非数学专业的人或自学成才的开发人员来说都是乏味的。希望我对任何人都有所贡献或帮助。在我学习时,没有人向我提到过这一点,我在读过的几本关于Android的书中也没有发现过这一点。在下面添加了一些解释,希望能有所帮助。请告诉我如何实现move方法的功能?覆盖onScroll也可以做到这一点(MotionEvent e1、MotionEvent e2、float distanceX、float distanceY)方法。请查看上面编辑的ans中链接的详细信息。