如何更改 VectorDrawable viewportHeight 和 viewportWidth 以及使用矢量的最佳实践是啥?

Posted

技术标签:

【中文标题】如何更改 VectorDrawable viewportHeight 和 viewportWidth 以及使用矢量的最佳实践是啥?【英文标题】:How to change VectorDrawable viewportHeight and viewportWidth and what is the best practice on working with vector?如何更改 VectorDrawable viewportHeight 和 viewportWidth 以及使用矢量的最佳实践是什么? 【发布时间】:2019-06-24 11:50:08 【问题描述】:

我的场景

我从 flaticon 下载 SVG 并在 android Studio 的 Vector Asset Studio 中更改为矢量资源。

我的问题

一切正常。虽然我在导航视图中使用了许多图标。这些向量的大小不同。它们的 viewportWidth 和 viewportHeight 是不同的。我想要的是所有这些具有相同大小的向量,我使用 android:width 和 android:height 到 24dp 但它们的大小不同。

我发现了很多,我知道 viewportWidth 和 viewportHeight 是绘制 SVG 时的画布大小,它对 SVG 的大小没有影响?那么我可以在我的问题中做些什么呢?

【问题讨论】:

在实现到android之前通过第三方编辑器调整矢量图像的大小是击球手。 sketch 是 Mac 上非常强大的编辑器。请尝试在用户之前调整大小。 sketchapp.com/docs/vector-editing 放一些代码和结果,让大家更好理解。 【参考方案1】:

根据我的经验,矢量图像只是具有视口宽度和高度,因为它必须绘制路径。

如果增加宽度和高度,路径就会改变。

因此您无需更改 viewportWidth 和 viewportHeight 但您可以在布局中指定宽度/高度。

例如:

以下示例将显示尺寸为 56x56 的图像,并且它使用矢量图像不会被拉伸:

<ImageView
    android:id="@+id/imageView"
    android:layout_
    android:layout_
    android:layout_margin="8dp"
    android:contentDescription="@null"
    app:srcCompat="@drawable/ic_vector" />

希望对您有所帮助。

如果您有任何问题,请告诉我。

【讨论】:

以上是关于如何更改 VectorDrawable viewportHeight 和 viewportWidth 以及使用矢量的最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android的VectorDrawable类绘制矢量图

如何在不修改原始drawable的情况下设置vectorDrawable的色调?

如何使用 vectorDrawable 作为使用 Android 支持库 23.2 的推送通知的图标? setSmallIcon 给出错误

Android开发 VectorDrawable 矢量图 矢量图动画放入到一个xml文件中

Android:将 SVG 转换为 VectorDrawable

Android中SVG和VectorDrawable的区别