Android 安卓-什么&x27;在支持最低API级别20或更低的应用程序中使用矢量绘图的优势是什么?
我正在我的应用程序中使用矢量绘图支持库,如下所示,Android 安卓-什么&x27;在支持最低API级别20或更低的应用程序中使用矢量绘图的优势是什么?,android,android-vectordrawable,Android,Android Vectordrawable,我正在我的应用程序中使用矢量绘图支持库,如下所示,minSdkVersion为16 android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 根据官方文件,它提出了两种在play store上交付应用程序的方法 如果我采用第一种方法,即: 创建一个APK,该APK包含矢量绘图和相应的光栅表示。此解决方案最容易实现。 它有什么优势吗?因为它包括矢量绘图和光栅表示。它
minSdkVersion
为16
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
根据官方文件,它提出了两种在play store上交付应用程序的方法
如果我采用第一种方法,即:
创建一个APK,该APK包含矢量绘图和相应的光栅表示。此解决方案最容易实现。
它有什么优势吗?因为它包括矢量绘图和光栅表示。它不是在增加apk大小吗?最重要的是:测试它 至少为您的目标sdk和min sdk获取一个模拟器,看看应用程序是否崩溃,因为Vector Drawables和支持库存在一些缺陷 为什么要使用向量? 它们可以缩放 无论您是使用预期的24dp绘制可拉伸图,还是将其放大到100dp,它看起来总是很好。如果你用位图做同样的尝试,就不会那么多了 另一件事是,它们将大大减少您的apk大小,因为它们在大多数情况下都比光栅化图像小 缺点是它们可能需要更长的时间来绘制,等等,因为解析和绘制的过程比仅仅使用位图要多。如果你保持向量的简单,这应该是可以忽略的 还了解 为什么不使用向量? 除了上面提到的(可能的)性能影响之外,您可能还需要修复一些问题,例如层列表可绘制文件中的向量,以及对这些内容的支持,但不建议这样做。此外,它也不适用于较低API版本的窗口背景,因此,如果您使用窗口背景来启动屏幕,您可能仍然希望仅使用位图
我个人尽可能使用矢量绘图工具。如果您想修改颜色或修复某些内容,它尤其有用,因为您只需修改xml,并且不必获得新的图形导出。因此我没有太多优势,因为我的应用程序的最小API级别低于20,除非我采用两个apk的方法在play store上交付应用程序?@Amit使用SVG,你有很大的优势,不需要拆分apk。支持库提供了强大的svg支持,请确保对其进行测试。我在哪里失去了你?如果我错过了一些东西,很抱歉,但当我使用单apk方法时,支持库会生成矢量绘图和光栅图像(即PNG)。它不会使apk尺寸进一步膨胀吗?如果它不膨胀的大小,因为它会添加多个密度的.PNGs,那么我完全支持使用向量绘制。这里只需要澄清一下。@Ami您是否通过添加
vectorDrawables.useSupportLibrary=true
关闭光栅图像的生成,并且支持库将用于显示它们(在运行时,作为向量),请查看android为什么不完全支持向量?首先,SVG!=VectorDrawable(VectorDrawable使用SVG指令的有限子集)。这就是为什么我删除了svg
标记。第二,与位图图形相比,使用矢量图形的主要优势在于前者可扩展且无锯齿。这意味着您不需要为每个屏幕密度提供不同的位图。