矢量绘图不覆盖

Vector Drawable not Overriding

我的目录结构如下:

drawable/ic_logo.xml
drawable-v24/ic_logo.xml

我遇到的问题是 ic_logov24 版本没有覆盖 "default" 可绘制文件夹版本,应用程序在所有 API 上显示默认值版本。

我必须使用 v24 版本的原因是因为包含梯度的矢量需要 startXstartY 等,直到 API 才可用] 24.

我的 minSdkVersion 是 21,我从 AppCompatImageView 调用向量,如下所示:

    <androidx.appcompat.widget.AppCompatImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        app:layout_constraintRight_toRightOf="parent"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_logo"
        app:srcCompat="@drawable/ic_logo"
        app:layout_constraintTop_toTopOf="parent"/>

奇怪的是,当使用 Android Studio 预览器时,API < 23 和 API 24 岁及以上的人可以正确显示徽标,但在任何模拟器或实时设备上都无法正确显示。

感谢@PankajKantPatel,我为此实现了"workaround"。

if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.M){
    logo.setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.ic_logo, null));
}else{
    logo.setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.ic_logo_24, null));
}

我仍然觉得这是一个错误,因为它应该遵循与图像资产相同的逻辑,为此我将使用 Google 记录一个错误。