首页 > 解决方案 > 具有渐变颜色的矢量可绘制不支持低于 API 24

问题描述

图像的矢量可绘制包含Gradient颜色,在 API 版本 24 以下未显示imageview,我使用的是Android-Studio 3.1

ic_gradient_image.xml :

<aapt:attr name="android:fillColor">
         <gradient android:endX="270.1115" android:endY="1.3445"
              android:startX="243.3148" android:startY="512.6555" android:type="linear">
               <item android:color="#FFFF9426" android:offset="0"/>
               <item android:color="#FF9D6936" android:offset="0.4076"/>
               <item android:color="#FF404146" android:offset="0.8154"/>
               <item android:color="#FF1B314C" android:offset="1"/>
          </gradient>
  </aapt:attr>

以上xml显示,

属性endX仅用于 API 级别 24 及更高级别。

属性endY仅用于 API 级别 24 及更高级别。

属性offset仅用于 API 级别 24 及更高级别。

构建.gradle:

vectorDrawables.useSupportLibrary = true

应用程序.java:

static
{
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

在适配器中实现:

holder.product_image.setImageResource(R.drawable.ic_gradient_image);

也试过,

holder.product_imageButton.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_gradient_image));

我已经尝试过解决方案 1和解决方案 2

有什么方法可以使用 Android Studio 3.0 在 API 23 下反映gradient颜色。imageview

标签: androidandroid-drawable

解决方案


试试这个解决方案:https ://stackoverflow.com/a/54683616/2960387

在你的里面添加这个build.gradle

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

在 ImageView 上使用app:srcCompat而不是android:src

如果您想要这个,请使用androidx.appcompat.widget.AppCompatImageButton而不是ImageButtonImageButton


推荐阅读