view Touch事件和位置

本文解析了Android中View的Touch事件处理机制,包括onTouch与onTouchEvent的区别及优先级,同时介绍了如何通过事件获取点击坐标,并应用于实际业务场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习了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是点击位置横坐标到屏幕上边缘的值

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值