当前位置 > 主页 > APP资讯 >

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

日期:2020-09-05 23:09:28 作者:admin 出自:贵州海鑫盛app开发公司

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坐标记录。

       以上就是本站为大家介绍的关于触摸事件的处理方法,希望能够帮到大家!


上一篇:如何正确使用SQLite数据库 下一篇:没有了
18585853123
在线留言