Android - 在应用程序中使用矢量drawables支持最低API级别20或更低的优势是什么?

时间:2017-04-22 09:37:41

标签: android android-vectordrawable

我正在我的应用中使用支持库来实现矢量绘图,如下所示minSdkVersion为16。

android {  
    defaultConfig {  
        vectorDrawables.useSupportLibrary = true  
    }  
}

根据官方文档here,它提出了两种在Play商店中提供应用的方法。

如果我采用第一种方法说: 创建一个包含矢量绘图和相应栅格表示的APK。这个解决方案最容易实现。

它有什么优势吗?因为它包括矢量绘图和光栅表示。是不是增加了apk大小?

1 个答案:

答案 0 :(得分:5)

最重要的是:测试

至少为你的目标sdk和min sdk获取一个模拟器,看看应用程序是否崩溃,因为使用Vector Drawables和Support库存在一些陷阱。

为什么要使用Vectors?

它们可以缩放。

无论您是使用预期的24dp绘制drawable还是将其缩放到100dp,它总是看起来很好。如果你用位图尝试相同的东西,那就不那么重要了。

另一件事是它们将大大减少你的apk尺寸,因为它们在大多数情况下比光栅化图像小。

缺点是它们可能需要更长的时间来绘制,因为除了使用位图之外,还有更多的解析和绘图。如果你保持你的矢量简单,这应该可以忽略不计。

另请阅读using vector drawables with the support library.

为什么使用向量?

除了上面提到的(可能的)性能影响之外,您可能必须修复一些内容,例如图层列表drawable中的向量等,因为可以启用对这些内容的支持,但不建议这样做。此外,它不适用于较低API版本的窗口背景,因此如果您使用窗口背景执行启动画面,您可能仍希望仅使用位图。

我个人尽可能使用Vector Drawables。如果你想修改颜色或修改一些东西,它会特别有用,因为你可以修改xml,而不必获得新的图形导出。