十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

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

百恒网络 2018-09-12 15:30:23 2775
       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坐标记录。

       以上就是百恒网络为大家介绍的关于触摸事件的处理方法,希望能够帮到大家!
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×