![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
触摸反馈
文章平均质量分 73
自定义view的触摸事件及其反馈相关知识
not coder
贪财好色,一身正气
展开
-
一个跟随手指滑动的图片 -- 单点触摸
运行以上代码,会发现在第二次进行拖动操作的时候,图片会跳到左上角,开始跟随手指移动,并不是从上一次拖动的结束位置继续的,所以说我们还要计算下结束时的位置,在移动的时候加上上次的位置。但是实际运行中会发现,拖动刚开始会闪一下,而且总是图片的左上角在我们手指的位置跟随手指移动,而不是我们按下的位置跟随手指移动。在上面代码中,我们在移动事件中,将移动的坐标实时保存在变量当中,然后触发重绘,在绘制方法中,也配合使用更改后的坐标变量。这是因为我们的手指坐标传递给的是图片的左上角,如果要实现按下的位置跟随手指移动,原创 2023-09-05 21:10:21 · 137 阅读 · 0 评论 -
自定义 View:多点触控 (一)-- 手指接力
这里面没有处理多指操作,当我们两个手指同时进行操作的时候,会发现效果是这样:第一个手指正常操作,第二个手指放上去开始滑动但是没有反应,只有当第一个手指移除,才会响应第二个手指的操作,当第一个手指放回时,第二个手指立即失效,直接响应第一个手指的操作。每一个事件都会对应一个坐标,而事件是由手指触发的,也就是对应一个point, 也是站在View的角度来说,是针对View的。那么,默认的多指操作是上面的哪一种呢,很遗憾,都不是,我们可以运行我们上一篇文章讲的,获取的,这也就解释了事件序列集中的所有参数的作用。原创 2023-09-06 00:06:14 · 167 阅读 · 0 评论 -
自定义View:多点触控(二)-- 多指协作
以上就是计算一个焦点的过程,可以发现,焦点计算出来之后,本质是View跟随这个焦点移动,具体有多少个手指都没有关系了,所以说又成了最初的单指操作。如果不处理的话,在有新的手指按下的时候,会瞬间改变焦点的位置,会导致图片瞬间移动,所以说我们还是需要处理多指的。但是这里的处理就不需要那么复杂了,不管是第几根手指按下还是抬起,都只需要做相同的事情,也是之前单点触摸的逻辑:重置焦点坐标。,之前我们讲过,这个获取的数量是包括正在抬起的手指的,所以说我们手指抬起的时候,返回的数量和实际的数量是对应不上的。原创 2023-09-06 12:26:31 · 130 阅读 · 0 评论 -
自定义 View:多点触控 (三)-- 各自为战
这种情况不是很少的奇葩使用场景,只是比较少而已,还是有这种需求的,比如说一个画板功能,就需要每个手指去做自己的事情。接下来就是记录手指移动的路径,在落下、移动时记录下,仅做演示使用,在手指抬起的时候进行清空。OK,以上就完成了,接下来我们实现多指的效果。多指就意味着需要记录多指的路径,这里使用。那好,我们就来一步步实现一个画板的功能。来记录,比较简单,直接贴最终代码。,还有经过的路径要记录下来。我们先来实现一个单指的效果。既然是画线,那我们需要。原创 2023-09-06 14:50:01 · 102 阅读 · 0 评论