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

Ami*_*mit 2 android android-vectordrawable

我在我的应用程序中使用支持库为矢量drawables,如下所示,minSdkVersion是16.

android {  
    defaultConfig {  
        vectorDrawables.useSupportLibrary = true  
    }  
}
Run Code Online (Sandbox Code Playgroud)

根据这里的官方文档,它提出了两种在Play商店提供应用程序的方法.

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

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

Dav*_*jak 5

最重要的是:测试它.

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

为何使用矢量?

它们可以缩放.

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

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

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

另请阅读有关使用支持库的矢量drawable的信息.

为什么使用载体?

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


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