viewportwidth/height 对 Android 可绘制对象有什么影响

问题描述 投票:0回答:5

我有一个从 SVG 资源导入的矢量绘图。有时,我必须调整尺寸。通常我会更新宽度和高度。我无法弄清楚视口宽度和高度如何影响 svg。似乎改变这些尺寸可以将 svg 推到可见区域内的视图之外。

这些计量单位代表什么?它与宽度和高度分别有什么关系?来自 Google 的文档(像往常一样)严重不足。有人可以详细说明一下吗?

android svg android-vectordrawable
5个回答
88
投票

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,而不是整个形状。


36
投票

假设画布内的苹果是您的主要矢量可绘制。然后hw分别是画布的高度宽度。所以最后 hw 将分别是您的可绘制对象的

viewportHeight
viewportWidth

enter image description here


23
投票

Viewportwidth/Viewportheight 是 SVG 路径的画布尺寸,宽度/高度是整个可绘制对象的实际固有尺寸。


4
投票

简单地说,

viewportWidth
就像框架的宽度,而
width
就像框架内图片的宽度。


0
投票

这可以用一个词来简化:缩放

width
height
用于描述设计绘图时的原始尺寸(注意所有绘制的路径都是相对于它们的)。

另一方面,

viewportWidth
viewportHeight
用于描述要显示图像的最终尺寸。

  • 如果指定
    viewport size > size
    ,图像将被放大。
  • 如果您指定
    viewport size = size
    ,图像将具有相同的尺寸。
  • 如果指定
    viewport size < size
    ,图像将缩小。

这是一个有趣的练习,尝试更改现有复合体

width
(包含路径元素的复合体)的
height
VectorDrawable
,您会注意到图像被裁剪,但尝试更改
viewportWidth
 viewportHeight
,您会注意到图像被缩放。

© www.soinside.com 2019 - 2024. All rights reserved.