我有一个从 SVG 资源导入的矢量可绘制对象。有时,我必须调整大小。通常我会更新宽度和高度。我无法解决的是 viewportwidth 和 height 也如何影响 svg。似乎更改这些尺寸可以将 svg 推到可见区域之外。
这些计量单位代表什么?它分别与宽度和高度有什么关系? documentation from Google是,(像往常一样),严重不足。有人可以详细说明吗?
最佳答案
viewportWidth
和 viewPortHeight
定义了绘制 VectorDrawable 内容的文档区域。它们相当于 SVG viewBox
的宽度和高度字段。如果需要进一步解释,请研究 SVG View 框的工作原理。
因此,假设您的形状是一个 100 宽和 100 高的矩形。您的 viewportWidth
和 viewPortHeight
通常都应设置为 100。以便 Android 知道底层形状的尺寸。
width
和 height
属性告诉 Android VectorDrawable 的默认(“固有”)渲染大小应该是多少。您可以将它们想象成 PNG 或 GIF(或 SVG)的宽度和高度。
因此,您的 VectorDrawable 的内容可以定义在 100x100 的区域上。但是如果你的宽度和高度是 24x24,内容会从 100x100 缩小到 24x24。
这就是为什么摆弄 viewportWidth
和 viewPortHeight
会弄乱 VectorDrawable。因此,例如,如果您将它们更改为 50x50,您最终会将形状的一个角缩小为 24x24,而不是整个形状。
关于android - viewportwidth/height 对 Android drawable 有什么影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41353732/