记得之前有个问题如何加载100M的图爿却不撑爆内存如何处理大图一张 100M 的大图,如何预防 OOM
1 .图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理
在
onFling
方法中调用滑动器Scroller
的fling方法来处理手指离开之后惯性滑动。惯性移动的距离在View的computeScroll()
方法中计算也需要注意边界问题,不要滑出边界
mMultiple
为双击の后放大几倍,这里设置3倍第一次双击放大3倍,第二次双击返回原状缩放完成之后,需要根据当前的缩放比重新设置绘制区域的边界最后也需要重新定位一下边界,因为如果使用两个手指放大之后这时候双击返回原状,如果不处理边界位置会出错。处理边界的代碼可以抽取出来第八步,处理手指缩放事件
//获取与上次事件相比得到的比例因子 //当 >= 2 个手指碰触屏幕时调用,若返回 false 则忽略改事件调用
onScaleBegin
方法需要返回true否则无法检测到手势缩放。onScale
方法中获取缩放因子这个缩放因子是跟上次事件相比的出来的。所以这里使用*=完成之后也需要重新设置绘制区域mRect
的边界。到这里各种功能就完成啦~