gpt4 book ai didi

Android onFling 没有响应

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:05:40 30 4
gpt4 key购买 nike

首先我是 android 新手,所以首先想到任何新手错误

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

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 得到任何响应。

我犯了什么错误?这与 View 有关吗?

我不知道看什么代码会有用....所以任何建议都将不胜感激。谢谢!

最佳答案

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

尝试将onDown方法末尾的return false改成return true

Input Events 中对返回值的解释有些晦涩。开发指南的页面。 (向下滚动到示例代码下方查看)。

关于Android onFling 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522637/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com