实现矢量可绘制支持库后,为什么仍然还有png?

iHo*_*ell 5 android android-appcompat gradle android-vectordrawable

标题说的差不多。我在矢量drawables的纯xml文件之外有2个png,并且我正在使用vector drawable支持库。

android {
    ...
    defaultConfig {
        ...
        vectorDrawables.useSupportLibrary = true
    }
}
dependencies {
    ...
    compile 'com.android.support:appcompat-v7:23.2.0'
}
Run Code Online (Sandbox Code Playgroud)

我用apktool反编译了以此构建的apk,发现我的res文件夹中仍然有150 png,即使我的res中只有2个。我在执行中做错什么了吗?

web*_*o80 -2

因为VectorDrawableCompat在编译时生成 PNG。

这是必要的,因为较旧的 API (<19) 不支持矢量绘图。确保您的 Gradle 插件是 1.5.0 或更高版本。

为了无法获取 PNG,您必须将minSDK设置为21,并且使用 VectorDrawableCompat。

请参阅文档

  • @TashPemhiwa 如果您在项目中使用 VectorDrawables,但**不**启用 VectorDrawable 支持库,那么如果您的 minSDK 低于 21,Android Studio 将生成 png。如果您使用 VectorDrawables 并**启用**支持库,就像问这个问题的人一样(`vectorDrawables.useSupportLibrary = true`),那么 **将不会** 生成 png,因为它将针对低于 API 21 的设备使用 VectorDrawableCompat。 (6认同)
  • 这不应该是一个被接受的答案,它是不正确的信息。 (3认同)