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

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

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

提供全面的搜索引擎优化学习交流,专注网站优化和搜索引擎营销推广服务。用专业的SEO技术为企业网站提升关键词排名,让你的网站不仅满足用户体验还要适合搜索引擎优化规则。
易速网站优化公司 » 安卓开发之触摸事件处理方法
享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡