我有一个SVG drawable。有时,我必须调整大小。通常我会更新宽度和高度。我能解决的是视口宽度和高度如何影响svg。似乎改变这些尺寸可以将svg推出可见区域内的视野。
这些计量单位代表什么?它与宽度和高度的关系分别是什么? documentation from Google是(像往常一样)可悲的不足。有人可以详细说明吗?
答案 0 :(得分:37)
viewportWidth
和viewPortHeight
定义了在其中绘制VectorDrawable内容的文档区域。它们等同于SVG viewBox
的宽度和高度字段。研究如果需要进一步解释,SVG viewBox的工作原理。
所以想象你的形状是一个宽100宽100高的矩形。您的viewportWidth
和viewPortHeight
通常都应设置为100.因此,Android知道基础形状的尺寸。
width
和height
属性告诉Android VectorDrawable的默认(“内在”)渲染大小应该是什么。您可以将这些视为PNG或GIF(或SVG)的宽度和高度。
因此,可以在100x100的区域内定义VectorDrawable的内容。但如果您的宽度和高度为24x24,则内容将从100x100缩小到24x24。
这就是为什么用VectorDrawable摆弄viewportWidth
和viewPortHeight
混乱的原因。因此,例如,如果将它们更改为50x50,最终会将形状的一个角缩小到24x24 - 而不是整个形状。
答案 1 :(得分:11)
Viewportwidth / Viewportheight是SVG路径的画布尺寸,宽度/高度是整个drawable的实际内在尺寸。
答案 2 :(得分:8)
答案 3 :(得分:2)
viewportWidth
就像帧的宽度,width
就像该帧内图片的宽度。