【问题标题】:How to add a onTouchEvent to application?如何将 onTouchEvent 添加到应用程序?
【发布时间】:2012-09-07 00:37:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: java android events touch screen


【解决方案1】:

任何图形部件都可以处理触摸事件。通常情况下使用 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              
    }
}

【讨论】:

    猜你喜欢
    • 2016-01-09
    • 2016-05-24
    • 2018-10-23
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多