矢量绘图不覆盖
Vector Drawable not Overriding
我的目录结构如下:
drawable/ic_logo.xml
drawable-v24/ic_logo.xml
我遇到的问题是 ic_logo
的 v24
版本没有覆盖 "default" 可绘制文件夹版本,应用程序在所有 API 上显示默认值版本。
我必须使用 v24
版本的原因是因为包含梯度的矢量需要 startX
、startY
等,直到 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 记录一个错误。
我的目录结构如下:
drawable/ic_logo.xml
drawable-v24/ic_logo.xml
我遇到的问题是 ic_logo
的 v24
版本没有覆盖 "default" 可绘制文件夹版本,应用程序在所有 API 上显示默认值版本。
我必须使用 v24
版本的原因是因为包含梯度的矢量需要 startX
、startY
等,直到 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 记录一个错误。