view Touch事件和位置

最近学习了view Touch事件和位置,这里和大家分享一下,如有其它看法的,尽情指正

首先,view有两个关于Touch事件的方法 onTouch 和 onTouchEvent ,它们两者有什么不同呢?

1、onTouch是View里面的一个接口OnTouchListener的方法,使用方法view.setOnTouchListener();

2、onTouchEvent直接是View里面的一个方法,在重写View的时候,直接重写此方法即可

如果单纯的获取Touch事件的结果,用两者没有多大的区别,都可以实现你想要的简单效果。

但是根据点击事件的传递原则,如果onTouch返回是true,就说明Touch事件已经被处理完了,那么onTouchEvent事件就会被拦截,里面的逻辑不会被执行。如果onTouch返回是false,那么onTouchEvent事件也会被执行。具体实现就要看具体的业务需求了。从这里也可以看出,onTouch的优先级高于onTouchEvent。

另外,点击一个view的时候,我们可以获得点击的坐标

(int)event.getX();此方法获得的x是点击位置横坐标到父容器左边缘的值

(int)event.getY();此方法获得的y是点击位置纵坐标到父容器上边缘的值

(int)event.getRawX();此方法获得的x是点击位置横坐标到屏幕左边缘的值

(int)event.getRawY();此方法获得的y是点击位置横坐标到屏幕上边缘的值

根据以上得出的点击坐标,我们可以做一些业务相关的操作

猜你喜欢

转载自blog.csdn.net/ming_csdn_/article/details/71171133