我读过这篇文章,但对我来说仍然没有意义。
从 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 { additionalParameters"--no-version-vectors" } }
这里有完整的细节:http://android-developers.blogspot.co.uk/2016/02/android-support-library-232.html
相关讨论
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 对您来说已经足够了。