在安卓系统中,用于左右滑动手指的事件是什么?

7
我正在创建一个图片库,如果我点击图像的网格视图,它将显示全屏图像。
现在,我想实现触摸屏或手指向左或向右滑动以更改图像的功能。
请问哪个事件应该使用或者该如何操作?
感谢任何帮助。

1
我认为你不能通过使用事件来控制用户的手指,那样会很可怕。 - Matti Virkkunen
4个回答

7

2

您需要实现onTouchEvent函数并确定滑动实际发生的时间。没有内置的事件可以处理这种情况。


1

我在我的应用程序JustPictures中实现了这种行为,目的完全相同。我是通过onTouchEvent(MotionEvent event)来实现的:

if(event.getAction()==MotionEvent.ACTION_MOVE){...}

您可以使用event.getX()获取手指的X位置,并计算自上次接收事件以来的偏移量。然后,您可以更新一个私有于您的视图的偏移变量,并使用postInvalidate()进行刷新。然后,您的onDraw方法负责通过当前偏移量来转换画布。


1
@UMMA:再多一点什么?而且,要求人们通过电子邮件回复是对社区的不礼貌。任何补充都应该添加到帖子中,以便其他人也可以学习。 - Matti Virkkunen
请查看Android博客上的这篇新文章:http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html我认为你应该能在那里找到所有需要的内容。 - Greg

0

我已经使用了onGesturePerformed回调函数,但是你必须使用模拟器记录手势模式,将模式保存在res中,并执行以下操作:

Activity:

mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!mLibrary.load()) {
 finish();
}           
GestureOverlayView gestures = (GestureOverlayView)   
findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(this);

public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
  ArrayList<Prediction> predictions = mLibrary.recognize(gesture);
  if (predictions.size() > 0 && predictions.get(0).score > 1.0) { ... }}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接