为了账号安全,请及时绑定邮箱和手机立即绑定

scaleFactor=mInitScale/scale有什么用呢

if(scale*scaleFacotor<mInitScale) {  scaleFactor=mInitScale/scale; } 这到底有什么用呢?

正在回答

3 回答

有点绕,你慢慢看。

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就为图片限定了最大和最小的缩放值。


1 回复 有任何疑惑可以回复我~
#1

文艺slience 提问者

非常感谢!
2015-05-29 回复 有任何疑惑可以回复我~

正解!!!

0 回复 有任何疑惑可以回复我~

好乱啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
打造个性的图片预览与多点触控
  • 参与学习       23123    人
  • 解答问题       72    个

实现图片自由缩放与多点触控效果,对Matrix以及手势检测API深入学习

进入课程

scaleFactor=mInitScale/scale有什么用呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信