viewportwidth/height对Android drawables的影响是什么?

ang*_*guy 44 svg android android-vectordrawable

我有一个SVG drawable.有时,我必须调整大小.通常我会更新宽度和高度.我无法解决的是viewportwidth和height如何影响svg.似乎改变这些尺寸可以将svg推出可见区域内的视野.

这些计量单位代表什么?它与宽度和高度的关系分别是多少?谷歌文件(像往常一样)严重不足.有人可以详细说明吗?

Pau*_*eau 53

viewportWidthviewPortHeight定义的VectorDrawable的内容中抽取文档的区域.它们相当于SVG的宽度和高度字段viewBox.研究如果需要进一步解释,SVG viewBox如何工作.

所以想象你的形状是一个宽100宽100高的矩形.您viewportWidthviewPortHeight通常都应设置为100.因此Android知道底层形状的尺寸.

widthheight属性告诉Android的默认("内在")的VectorDrawable的呈现大小应该是什么.您可以将这些视为PNG或GIF(或SVG)的宽度和高度.

因此,VectorDrawable的内容可以在100x100的区域内定义.但如果你的宽度和高度是24x24,内容将从100x100缩小到24x24.

所以这就是为什么与摆弄viewportWidth,并viewPortHeight与VectorDrawable混乱.因此,例如,如果将它们更改为50x50,最终会将形状的一个角缩小到24x24 - 而不是整个形状.

  • 作为补充说明,不要摆弄宽度和高度,因为当您必须更新图形时,它会给您带来更多工作。尝试在视图而不是图形上定义尺寸。 (2认同)
  • 说了这么多,实际上并不能解释任何事情。视口就像您可以查看 SVG 的窗口,如果 SVG 大于窗口,那么您将看不到整个 SVG。 (2认同)

Gk *_*mon 16

让我们假设画布内的苹果是您的主要矢量 drawable。然后hw分别是画布的高度宽度。所以最后hw将分别是你的 drawableviewportHeightviewportWidth

在此处输入图片说明

  • 画得很漂亮:) (17认同)
  • @SMBiggs 这里“Width”将是“Apple”的宽度,“ViewportWidth”将是“Canvas”的宽度 (4认同)
  • 这是错误的,画布是 SVG 的大小。viewPort 的宽度和高度就像您正在查看的窗口,窗口可以相对较近或较远,并且位于 SVG 图像的不同部分,因此您可能根本看不到图像。 (2认同)

pde*_*d59 15

Viewportwidth/Viewportheight是SVG路径的画布尺寸,宽度/高度是整个drawable的实际内在尺寸.