我们是否应该赞成Vector drawable而不是多种密度的drawable?

时间:2018-07-04 06:02:44

标签: android

通常在项目中提供各种密度的可绘制图形

drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi

我想知道,我们应该支持矢量可绘制而不是多个密度可绘制吗?

我经历了https://developer.android.com/training/multiscreen/screendensities#vector-graphics

但是,它没有提及何时应该使用多个密度的drawable,何时应该使用Vector drawable。 Vector drawable是否有不利的情况?

3 个答案:

答案 0 :(得分:0)

矢量可绘制对象应始终受到青睐,因为它可以完全缩放,因此可以用矢量替换图像。

唯一使用密度不同的图像的地方是无法用矢量可绘制图像表示的图像。

答案 1 :(得分:0)

根据android文档: "An alternative to creating multiple density-specific versions of an image is to create just one vector graphic. Vector graphics create an image using XML to define paths and colors, instead of using pixel bitmaps. As such, vector graphics can scale to any size without scaling artifacts, though they're usually best for illustrations such as icons, not photographs."

因此,矢量绘制比使用多种密度的总是更好的选择。有关更多信息,请查看Documentation for supporting different pixel densities

这些文档将为您提供更多帮助。

https://developer.android.com/studio/write/vector-asset-studio

https://developer.android.com/guide/topics/graphics/vector-drawable-resources

答案 2 :(得分:0)

API 21和更高版本(Android 5)原生支持矢量可绘制对象,并且您无需使用任何特殊的库就可以在应用程序中使用它们。例如,在Image标签中,您可以使用src属性来加载矢量,就像使用矢量来加载位图图像一样。

在Google支持库的帮助下,它们也可以在旧版Android中使用,但性能会受到很大影响。