正好Philm项目中使用到了PhotoView,借此机会深入了解PhotoView的源码,PhotoView是一个非常好的图片显示第三方开源库,支持手势缩放移动图片等操作。PhotoView源码可在github上下载,下载链接PhotoView
重要的类和字段功能
|
|
|
|
学习知识点
onTouch ACTION_DOWN时
通过parent.requestDisallowInterceptTouchEvent(true)阻止parent劫持事件
matrix的scale获取方法:
|
|
GestureDetector.OnDoubleTapListener
通过该listener可以监听onSingleTapConfirmed, onDoubleTap
GestureDetector.SimpleOnGestureListener
通过该listener可以监听onLongPress, onFling
ScaleGestureDetector.OnScaleGestureListener
通过该listener可以监听onScale,onScaleBegin,onScaleEnd
VelocityTracker
通过VelocityTracker可以检测fling的速度,重要接口如下:
- mVelocityTracker.addMovement(ev);
- mVelocityTracker.recycle()
- mVelocityTracker.computeCurrentVelocity(1000);
- mVelocityTracker.getXVelocity()
- mVelocityTracker.getXVelocity()
OverScroller
通过OverScroller可以控制fling,重要接口如下:
- mScroller.computeScrollOffset()
- mScroller.fling(startX, startY, velocityX, velocityY, minX, maxX, minY, maxY, overX, overY)
- mScroller.isFinished()
- mScroller.getCurrX()
- mScroller.getCurrY()