gpt4 book ai didi

java - 如何向应用程序添加 onTouchEvent?

转载 作者:行者123 更新时间:2023-12-01 15:11:19 27 4
gpt4 key购买 nike

我为 Android 创建了一个非常简单的乒乓应用程序。

看起来不错,但我有一个问题:

我尝试执行 onScreenTouch 事件,以便将 Racket 放置在用户的触摸位置。

我的问题是 - 在哪里添加 Obj.addOnTouchEvent(this)

什么对象处理屏幕触摸?屏幕对象是什么?

最佳答案

任何图形小部件都可以处理触摸事件。通常情况下会使用 View 或 Activity 。

有多种方法可以处理触摸,但我建议使用 GestureListener:

public class GestureListener implements GestureDetector.OnGestureListener 
{
MyView appliedView; //view who responses to graphical gestures

public GestureListener(MyView currentView)
{
this.appliedView = currentView;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float dx,
float dy) {
//make your view response to gestures
appliedView.onGestureMove(e1, e2, dx, dy);
return true;
}

@Override
public boolean onDown(MotionEvent arg0) {
return true;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX,
float velocityY) {
return true;
}

@Override
public void onLongPress(MotionEvent e) {

}

@Override
public void onShowPress(MotionEvent e) {

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
}

在您的 View 类中:

public class MyView extends View 
{
private GestureDetector gestureMgr;

public MyView(Context context)
{
super(context);
gestureMgr= new GestureDetector(context, new GestureListener(this));
}

@Override
public boolean onTouchEvent(MotionEvent event)
{
return gestureMgr.onTouchEvent(event);
}

public void onGestureMove(MotionEvent e1, MotionEvent e2, float dx, float dy)
{
//check obj is touched or not
//do moving objects around
}
}

关于java - 如何向应用程序添加 onTouchEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310271/

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