百恒网络
安卓开发之触摸事件处理方法
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • 安卓开发之触摸事件处理方法

    2018-09-12 15:30:23 2953
           Android 触摸事件的一种方式是使用以下View方法,设置一个触摸事件供听器:
           public void setOnTouchListener(View.OnTouchListener l)
           该方法的工作方式与setOnClickListener(View.OnClickListener)相同。我们实现View.OnTouchListener接口,供触摸事件发生时调用。

           不过,我们的定制视图是View的子类,因此可走捷径直接覆盖以下View方法:
           public boolean onTouchEvent(MotionEvent event)

           该方法接收一个MotionEvent类实例,MotionEvent类可用来描述包括位置和动作的触摸事件。动作用于描述事件所处的阶段。

    安卓开发之触摸事件处理方法


           在onTouchEvent(...)实现方法中,可使用以下MotionEvent方法查看动作值:
           public final int getAction()
           在BoxDrawingView.java中,添加一个日志tag,然后实现onTouchEvent(...)方法记录可能发生的四个不同动作,如下代码所示。

           实现BoxDrawingView视图类(BoxDrawingView.java)
           public class BoxDrawingView extends View {
           private static final String TAG = "BoxDrawingView";
           ...
           @Override
           public boolean onTouchEvent(MotionEvent event) {
           PointF current = new PointF(event.getX(), event.getY());
           String action = "";
           switch (event.getAction()) {
           case MotionEvent.ACTION_DOWN:
           action = "ACTION_DOWN";
           break;
           case MotionEvent.ACTION_MOVE:
           action = "ACTION_MOVE";
           break;
           case MotionEvent.ACTION_UP:
           action = "ACTION_UP";
           break;
           case MotionEvent.ACTION_CANCEL:
           action = "ACTION_CANCEL";
           break;
           }
           Log.i(TAG, action + " at x=" + current.x +
           ", y=" + current.y);
           return true;
           }
           } 

           注意,X和Y坐标已经封装到PointF对象中。稍后,我们需要同时传递这两个坐标值。而Android提供的PointF容器类刚好满足了这一需求。

           运行DragAndDraw应用并打开LogCat视图窗口。触摸屏幕并移动手指,查看BoxDrawingView接收的触摸动作的X和Y坐标记录。

           以上就是百恒网络为大家介绍的关于触摸事件的处理方法,希望能够帮到大家!
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询