scaleFactor=mInitScale/scale有什么用呢
if(scale*scaleFacotor<mInitScale) { scaleFactor=mInitScale/scale; } 这到底有什么用呢?
if(scale*scaleFacotor<mInitScale) { scaleFactor=mInitScale/scale; } 这到底有什么用呢?
2015-04-14
有点绕,你慢慢看。
scale 表示的是当前图片基于原图放大的比例
mScaleMatix.postScale(scaleFactor, scaleFactor, getWidth() / 2,getHeight() / 2);中的scaleFactor参数表示基于当前已放大的图片再放大scaleFactor倍。所以图片的实际放大的大小是原图的scaleFactor*scale倍。也就是说,当前方法postScale传入的参数是scaleFactor,则图片实际基于原图放大的倍数是scaleFactor*scale
等式scaleFactor=mInitScale/scale 可以推导出---》 scaleFactor*scale = mInitScale -----》 此时的scaleFactor 作为postScale的参数,实际图片的缩放大小就是mInitScale
同理,scaleFactor=mMaxScale/scale ----> 图片实际缩放的大小是mMaxScale
实际上这两个if就为图片限定了最大和最小的缩放值。
举报