Vector Drawables在Android 4+;

Vector Drawables在Android 4+;,android,android-vectordrawable,androidx,Android,Android Vectordrawable,Androidx,我使用Android 4+上的矢量绘图工具,从XML和代码中提取,没有任何问题 设置:安卓Gradle插件3.2.1、安卓Studio 3.2.1、Gradle 4.10.1、安卓x支持库和Jetifier 用法示例: app:srcCompat=“@drawable/some\u vector\u drawable” android:drawableLeft=“@drawable/some\u vector\u drawable” view.setBackgroundResource(R.d

我使用Android 4+上的矢量绘图工具,从XML和代码中提取,没有任何问题

设置:安卓Gradle插件3.2.1、安卓Studio 3.2.1、Gradle 4.10.1、安卓x支持库和Jetifier

用法示例:

  • app:srcCompat=“@drawable/some\u vector\u drawable”
  • android:drawableLeft=“@drawable/some\u vector\u drawable”
  • view.setBackgroundResource(R.drawable.some\u vector\u drawable)
许多官方或不太官方的博客或堆栈溢出帖子提到:

  • build.gradle中的android.defaultConfig.vectorDrawables.useSupportLibrary=true

  • 和/或:
    AppCompatDelegate.setCompatVectorFromResourceEnabled(true)
    FromCode

但是我的矢量绘图工具在没有任何这些的情况下运行良好

是否有任何正式的最终文件?这些旗帜必要吗

我唯一注意到的是Android Studio中的警告,我忽略了它:

要使用vector drawable compat,需要设置defaultConfig.vectorDrawables.useSupportLibrary=true

专家建议,但没有说需要

它还说:

Android Studio 1.4通过在构建时生成PNG文件,为矢量绘图引入了有限的兼容性支持

目前还不清楚,而且该报告实际上没有提到太多关于矢量绘图的内容。然而,它似乎在说,当你不告诉Gradle你想使用支持库时,它会为每个向量生成依赖密度的PNG,并且可能会在旧设备上使用这些PNG而不是向量


如果这是真的,那么您真的应该使用支持库。为每个DPI生成一个PNG会大大增加你的应用程序大小。我敢肯定,支持库会在运行时为无法支持向量的设备生成PNG,这意味着APK保持较小。

没有:

android.defaultConfig.vectorDrawables.useSupportLibrary=true

build.gradle
中,为每个可绘制向量生成PNG,并成为生成的.apk文件的一部分

打开上述标志时,可以执行以下操作:

  • app:srcCompat=“@drawable/some\u vector\u drawable”
    在布局xml中
  • android:icon=“@drawable/some\u vector\u drawable”
    在菜单xml中
  • imageView.setImageResource(R.drawable.some\u vector\u drawable)
    在代码中

    (但是vector drawable需要是一个单独的vector(即:以