一、前言
Android 缩放手势检测 ScaleGestureDetector,在大多数的情况下缩放手势都不是单独存在的,需要配合其它的手势来使用,如果是用在自定义的控件上,则需要配合 Matrix 相关内容使用起来可能会更加方便。缩放手势最常见于以下的一些应用场景中,例如:图片浏览,网页缩放、地图等。
二、缩放手势检测
缩放手势检测同样是官方提供的手势检测工具,它的使用方式的 GentureDetector 类似,也是通过 Listener 进行监听用户的操作手势,它是对缩放手势进行了一次封装, 可以方便用户快速的完成缩放相关功能的开发。缩放手势相对比较简单,网络上也能查到不少非官方实现的缩放手势计算方案,但部分非官方的方案确实有所局限,例如只支持两个手指的计算,在出现超过两个手指时,只计算了前两个手指的移动,这样显然是不合理的。而官方的这种实现方案轻松的应对了多个手指的情况,下面我们就来看看它是如何实现的吧。
2.1 构造方法
它有两个构造方法,和 GestureDetector 类似,如下所示:
ScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener)
ScaleGestureDetector(Context context, ScaleGestureDetector.OnScaleGestureListener listener, Handler handler)
2.2 手势监听器
它只有两个监听器,但严格来说,这两个监听器是同一个,只不过一个是接口,另一个是空实现而已。
| 监听器 | 简介 |
|---|---|
| OnScaleGestureListener | 缩放手势检测器 |
| SimpleOnScaleGestureListener | 缩放手势检测器的空实现 |
OnScaleGestureListener 缩放手势监听器有 3 个方法:
//缩放手势开始,当两个手指放在屏幕上的时候会调用该方法(只调用一次)。如果返回 false 则表示不使用当前这次缩放手势。
boolean onScaleBegin(ScaleGestureDetector detector)
//缩放被触发(会调用0次或者多次),如果返回 true 则表示当前缩放事件已经被处理,检测器会重新积累缩放因子,
//返回 false 则会继续积累缩放因子。
boolean onScale(ScaleGestu

1503

被折叠的 条评论
为什么被折叠?



