android的onTouch事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android的onTouch事件相关的知识,希望对你有一定的参考价值。
在android的onTouch事件里面设两个event变量,然后我想在onTouch里面把参数的event变理先给第一个,然后随着onTouch事件的过程再把event对象赋值给第二个变量,有什么办法没有啊?
ontach是Android系统中整个事件机制的基础。Android中的其他事件,如onClick、onLongClick等都是以onTach为基础的。onTach包括从手指按下到离开手机屏幕的整个过程,在微观形式上,具体表现为action_down、action_move和action_up等过程。
onTach两种主要定义形式如下:
1、在自定义控件中,常见的有重写onTouchEvent(MotionEvent ev)方法。如在开发中经常可以看到重写的onTouchEvent方法,并且其中有针对不同的微观表现(action_down、action_move和action_up等)做出的相应判断,执行逻辑并可能返回不同的布尔值。
2、在代码中,直接对现有控件设置setOnTouchListener监听器。并重写监听器的onTouch方法。onTouch回调函数中有view和MotionEvent参数,据此也可以针对不同的事件微观表现作出不同的处理。
关于setOnTouchListener、setOnClickListener和setOnLongClickListener:
Android中,有时候经常见到针对同一控件可能设置不同的事件监听器(如setOnTouchListener、setOnClickListener和setOnLongClickListener),对于这些事件监听器的执行顺序,setOnTouchListener是最先执行的。并且只有当此空间完整走完action_down和action_up流程后,才可能调用performClick()方法,及调用onclick执行。而onLongClick则是在action_down之后开始,并且是在一个新的线程中去判断按压的时间,条件满足则调用performLongClick()函数,及调用onLongClick()函数。 参考技术A 可以,设置2个全局变量,比如定义全局int a ,b;
然后ontouch里
switch (event.getAction())
case MotionEvent.ACTION_DOWN:
a=1;
break;
case MotionEvent.ACTION_MOVE:
b=2;
break;
default:
break;
这样,当手指放下的时候a=1,然后手指移动时候b=2; 参考技术B 设全局变量试试
以上是关于android的onTouch事件的主要内容,如果未能解决你的问题,请参考以下文章
android 内部viewpager添加点击事件之后不能滑动了
Android onTouch()和onTouchEvent()区别