首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓onFling无响应

安卓onFling无响应
EN

Stack Overflow用户
提问于 2010-12-24 05:34:25
回答 5查看 12.5K关注 0票数 7

首先,我是android新手,所以先考虑任何新手的错误

我试图在我的代码中添加一个fling函数。

代码语言:javascript
复制
public class MainGamePanel extends SurfaceView implements
    SurfaceHolder.Callback, OnGestureListener {

private MainThread thread;
private Droid droid;
private Droid droid2;
private static final String TAG = gameView.class.getSimpleName();
private GestureDetector gestureScanner;

public MainGamePanel(Context context){
        super(context);
        getHolder().addCallback(this);
        droid = new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.playerbox2), 270, 300);
        droid2 = new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.playerbox2), 50, 300);
        thread = new MainThread(getHolder(), this);
        setFocusable(true);
        gestureScanner = new GestureDetector(this);
}


    public boolean onTouchEvent(MotionEvent event){
    return gestureScanner.onTouchEvent(event);
}


@Override
protected void onDraw(Canvas canvas){
    canvas.drawColor(Color.BLACK);
    droid.draw(canvas);
    droid2.draw(canvas);
}

@Override
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float                         velocityY)
    {
         droid.setX(50);
        droid.setY(50);
        Log.d(TAG, "Coords: x=" + e1.getX() + ",y=" + e2.getY());
        return true;
    }

@Override
public boolean onDown(MotionEvent e) {
    droid2.setX((int)e.getX());
    droid2.setY((int)e.getY());


    Log.d(TAG, "Coords: x=" + e.getX() + ",y=" + e.getY());
    return false;
}

我要使用的gestureListener是: onDown、onLongPress和onShowPress。

但我无法从onFling、onSingleTapUp和onScroll获得任何响应。

我犯了什么错误?这跟视图有关系吗?

我不知道什么代码会对我有用...因此,任何建议都将不胜感激。谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-24 06:15:25

onFling事件之前调用onDown。如果在onDown方法中返回false,则运动事件传播将停止。

尝试在onDown方法的末尾更改return true中的return false

在开发人员指南的Input Events页面中,有些生硬地解释了返回值。(向下滚动到示例代码下方查看)。

票数 52
EN

Stack Overflow用户

发布于 2012-07-05 11:05:54

您需要将视图设置为可长单击,如下所示:

代码语言:javascript
复制
 yourView.setLongClickable(true);
票数 8
EN

Stack Overflow用户

发布于 2010-12-26 01:27:06

理想情况下,我们不应该..当与Activity关联时,GestureDetector的工作方式与与视图关联时不同。已报告一个问题..click here for more details

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4522637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档