我想fling在我的Android应用程序中运行手势检测.
我拥有的是GridLayout包含9 ImageView秒的内容.源代码可以在这里找到:Romain Guys的网格布局.
我拿的那个文件来自Romain Guy的Photostream应用程序,并且只是略微适应了.
对于简单的点击情况,我只需要onClickListener为ImageView我添加的每一个设置为activity实现的主要部分View.OnClickListener.实现识别a的东西似乎无比复杂fling.我认为这是因为它可能跨越views?
如果我的活动实现,
OnGestureListener我不知道如何将其设置为我添加Grid的Image视图或视图的手势监听器.
public class SelectFilterActivity extends Activity implements
View.OnClickListener, OnGestureListener { ...
Run Code Online (Sandbox Code Playgroud)如果我的活动实现,
OnTouchListener那么我没有
onFling方法override(它有两个事件作为参数,允许我确定是否值得注意).
public class SelectFilterActivity extends Activity implements
View.OnClickListener, OnTouchListener { ...
Run Code Online (Sandbox Code Playgroud)如果我做了一个自定义View,就像GestureImageView那个扩展ImageView我不知道如何告诉活动fling从视图中发生了.无论如何,我试过这个,当我触摸屏幕时没有调用方法.
我真的只需要一个跨视图的具体例子.什么,何时以及如何附上这个listener?我还需要能够检测单击.
// Gesture detection
mGestureDetector = new …Run Code Online (Sandbox Code Playgroud) 我想检测一个doubletap视图,例如a button,然后知道它是哪个视图.我已经看到了这个类似的问题,但他们说这是一个重复的问题似乎没有回答我的问题.
所有我能找到是一个添加GestureDetector到活动中,并添加OnDoubleTapListener到它.但只有在我点击屏幕的背景/布局时才会触发.当我(双击)a时,它不会被触发button.
这是我里面的代码onCreate:
gd = new GestureDetector(this, this);
gd.setOnDoubleTapListener(new OnDoubleTapListener()
{
@Override
public boolean onDoubleTap(MotionEvent e)
{
Log.d("OnDoubleTapListener", "onDoubleTap");
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e)
{
Log.d("OnDoubleTapListener", "onDoubleTapEvent");
//if the second tap hadn't been released and it's being moved
if(e.getAction() == MotionEvent.ACTION_MOVE)
{
}
else if(e.getAction() == MotionEvent.ACTION_UP)//user released the screen
{
}
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent …Run Code Online (Sandbox Code Playgroud)