我有一个从SVG资源导入的矢量图形。有时,我需要调整其大小。通常,我会更新宽度和高度。但是我无法弄清楚viewportwidth和height也会影响SVG的方式。更改这些尺寸似乎会将SVG推出可见区域。
这些测量单位代表什么?它们分别与宽度和高度有什么关系?谷歌的文档(通常)非常不足。能否请有人详细解释一下?
我有一个从SVG资源导入的矢量图形。有时,我需要调整其大小。通常,我会更新宽度和高度。但是我无法弄清楚viewportwidth和height也会影响SVG的方式。更改这些尺寸似乎会将SVG推出可见区域。
这些测量单位代表什么?它们分别与宽度和高度有什么关系?谷歌的文档(通常)非常不足。能否请有人详细解释一下?
viewportWidth
和viewPortHeight
定义了VectorDrawable中绘制内容的文档区域。它们相当于SVG viewBox
中的宽度和高度字段。如果需要进一步解释,请研究SVG viewBox的工作原理。
因此,想象一下您的形状是一个宽100、高100的矩形。您的viewportWidth
和viewPortHeight
通常应该都设置为100,这样Android知道底层形状的尺寸。
width
和height
属性告诉Android VectorDrawable的默认("本质")渲染大小应该是多少。您可以将其视为PNG或GIF(或SVG)的宽度和高度。
因此,您的VectorDrawable的内容可以在100x100的区域内定义。但如果您的宽度和高度为24x24,则内容将从100x100缩小到24x24。
这就是为什么调整viewportWidth
和viewPortHeight
会影响VectorDrawable的原因。例如,如果将它们更改为50x50,您将最终得到一个角落缩小到24x24而不是整个形状。
width
和 viewportWidth
是相同的(都是 w)。那么为什么要有两个变量保存同样的值呢? - SMBiggsViewportwidth/Viewportheight是SVG路径画布的尺寸,而宽度和高度是整个可绘制区域的实际内在尺寸。
简单来说,viewportWidth
就像框架的宽度,而 width
则是该框架内部图片的宽度。
viewPortWidth
是框架绘图坐标系的宽度。框架的实际宽度是width
。 - Emil S.