ScalableImageView
放缩和移动
由于有两次移动,⼀次是初始偏移,另⼀次是随⼿指拖动,所以要分开两次写 translate()
1 | canvas.translate(offsetX * scalingFraction, offsetY * scalingFraction); //⼆次⼿动偏移 |
GestrueDetector
⽤于在点击和⻓按之外,增加其他⼿势的监听,例如双击、滑动。通过在 View.onTouchEvent()
⾥调⽤ GestureDetector.onTouchEvent()
,以代理的形式来实现:
1 |
|
GeasureDetector 的默认监听器:OnGestureListener
通过构造⽅法 GeasureDetector(Context, OnGestureListener)
来配置:
1 | gestureDetector = new GestureDetector(context, gestureListener); |
OnGestureListener
的⼏个回调⽅法:
1 |
|
双击监听器:OnDoubleTapListener
通过 GestureDetector.setOnDoubleTapListener(OnDoubleTapListener)
来配置:
1 | gestureDetector.setOnDoubleTapListener(doubleTapListener); |
OnDoubleTapListener
的⼏个回调⽅法:
1 |
|
OverScroller
⽤于⾃动计算滑动的偏移。
1 | scroller = new OverScroller(context); |
常⽤于 onFling()
⽅法中,调⽤ OverScroller.fling()
⽅法来启动惯性滑动的计算:
1 |
|