可绘制的矢量,带有渐变颜色,不支持API 24以下

时间:2019-03-04 08:40:21

标签: android android-drawable

图像的矢量可绘制对象包含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和更高版本中使用。

build.gradle:

vectorDrawables.useSupportLibrary = true

Application.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));

我尝试过Solution1Solution 2

在Android Studio 3.0下,是否可以通过API 23在gradient中反映imageview的颜色。

1 个答案:

答案 0 :(得分:1)

尝试以下解决方案:https://stackoverflow.com/a/54683616/2960387

将此添加到您的build.gradle中:

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

在ImageView上使用app:srcCompat代替android:src

如果希望androidx.appcompat.widget.AppCompatImageButtonImageButton代替ImageButton