矢量可绘制而不是覆盖

时间:2019-02-26 09:52:16

标签: android compatibility android-vectordrawable

我具有以下目录结构:

Send

我遇到的问题是drawable/ic_logo.xml drawable-v24/ic_logo.xml 的{​​{1}}版本没有覆盖“默认”可绘制文件夹版本,并且该应用程序在所有API版本上都显示了默认版本。

我必须使用v24版本的原因是因为矢量包含需要ic_logov24等的渐变,这些渐变直到API 24才可用。

我的startX是21,我正像这样从startY调用向量:

minSdkVersion

奇怪的是,使用Android Studio预览器时,对于API <23和API 24及更高版本,徽标正确显示,但在任何仿真器或实时设备上均未显示。

1 个答案:

答案 0 :(得分:0)

由于@PankajKantPatel,我为此实现了一个“变通方法”。

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记录一个错误。