最近在做改造android原生浏览器的功能,加一个类似UCWeb的自适应网页功能,遇到几个比较容易迷惑的概念。代码基于jellybean,frameworks/base/core/java/android/webkit/ 下
scale:缩放倍数,比如原始大小的缩放倍数为1,如果scale等于2,则表示尺寸增大一倍,原来一个像素可以显示的东西,现在需要两个像素;反之,如果scale等于0.5,则尺寸缩小一倍。
理解了scale缩放倍数之后,可以看下viewToContentX,contentToViewX这些函数(位于WebViewClassic.java中),提到content space和view space.
一个公式就能说明其关系 view space = content space * scale
content space: 原始网页的尺寸,相当于是一个定值,只要网页定了宽度和高度,这个值不会改变了。
view space: 显示时的尺寸, 如果一张图片的原始尺寸是200像素,而缩放比例是2,那么它显示的尺寸就是400像素。