关于android:VectorDrawableCompat 是干什么用的?
What VectorDrawableCompat is for?
我读过这篇文章,但对我来说仍然没有意义。
从 gradle build tools 1.5.0 开始,我们可以在应用程序中使用矢量绘图。对于 Lollipop 及以上的向量使用,对于以下的 os 版本,gradle 生成 PNG 文件并将它们放在 drawable_\\'density\\'_v4 中。
好的,很清楚。
现在我们还对矢量可绘制对象进行了兼容性支持,我已按照此说明在我的应用程序中支持它们,但是当它完成并且似乎一切正常时,我仍然可以在 apk 文件中找到生成的 PNG 文件。 那么,如果应该使用支持drawable,有什么区别以及为什么会生成PNG文件? 对于 Gradle 2,您需要添加: 到你的 build.gradle. 对于 gradle 1.5 aaptOptions {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
defaultConfig {
generatedDensities = []
}
additionalParameters"--no-version-vectors"
}
}
这里有完整的细节:http://android-developers.blogspot.co.uk/2016/02/android-support-library-232.html
相关讨论
- 我已经说过我已按照说明进行操作,因此我在 gradle 中有这些条目。
- 它对我来说很好,所以再试一次。你一定错过了什么
- 您确定您没有在应用程序中生成 PNG 文件吗?另外,如果我有库模块,它们是否也需要那些 gradle 条目?
- 我可以在通过 Gradle Buildship 插件添加了 Gradle 支持的 Eclipse Android 项目中执行此操作吗?
a)PNG 生成方案 Vs. 的区别b)VectorDrawableCompat 是 :
1) APK 大小。对于 a),您最好使用多 apk,这样一个 APK 用于 >=21,一个用于 =21 的 APK 大小。
对于 b),无论最低 API 级别如何,都应减小整个 APK 的 APK 大小。
2) 功能限制。 a) 不支持 Vectordrawable 内部的一些很少使用的属性。对于 b) 虽然支持所有属性,但它需要一些代码更改,例如从 anrdoid:src 到 app:srcCompat。
3) 参考:对于a),您可以在Java/XML 中的任何地方参考VectorDrawable(或生成的PNG),而不知道它是否为Vector。但是对于 b) 你必须使用 app:srcCompat 来引用 VectorDrawableCompat,或者在 DrawableContainer 中使用。
简而言之,如果您的目标是为所有操作系统版本提供最佳 APK 大小并且不介意稍微更改代码,请使用 VectorDrawableCompat。否则,PNG 生成单独的 APK 对您来说已经足够了。