Java 如何向应用程序添加onTouchEvent?
我为android创建了一个非常简单的乒乓球应用程序 看起来不错,但我有一个问题: 我尝试执行onScreenTouch事件,以便将球拍放置在用户的触摸位置 我的问题是-在哪里添加Java 如何向应用程序添加onTouchEvent?,java,android,events,touch,screen,Java,Android,Events,Touch,Screen,我为android创建了一个非常简单的乒乓球应用程序 看起来不错,但我有一个问题: 我尝试执行onScreenTouch事件,以便将球拍放置在用户的触摸位置 我的问题是-在哪里添加Obj.addOnTouchEvent(this) 什么对象可以处理屏幕触摸?屏幕对象是什么 任何图形小部件都可以处理触摸事件。通常情况下,视图或活动用于案例 有几种处理触摸的方法,但我建议使用手势监听器: public class GestureListener implements GestureDetector.
Obj.addOnTouchEvent(this)
什么对象可以处理屏幕触摸?屏幕对象是什么 任何图形小部件都可以处理触摸事件。通常情况下,视图或活动用于案例 有几种处理触摸的方法,但我建议使用
手势监听器
:
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;
}
}
在您的视图类中:
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
}
}
如何实现图形化?如果您使用的是SurfaceView/openGL,则将其onTouchEvent()设置为您的实现,请参见此。