在 Android 6 上使用矢量可绘制崩溃的背景

问题描述

我正在尝试将下面的矢量设置为 RelativeLayout 的背景。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:aapt="http://schemas.android.com/aapt"
        android:width="344dp"
        android:height="200dp"
        android:viewportWidth="344"
        android:viewportHeight="200">
        <path
            android:fillType="nonZero"
            android:pathData="M10,0L334,0A10,10 0,0 1,344 10L344,190A10,334 200L10,200A10,0 190L0,10A10,10 0z">
            <aapt:attr name="android:fillColor">
                <gradient
                        android:endX="330.50143"
                        android:endY="122.16"
                        android:startX="71.5004"
                        android:startY="89.108"
                        android:type="linear">
                    <item
                        android:color="#FFE8E7FA"
                        android:offset="0" />
                    <item
                        android:color="#FFDAD4F9"
                        android:offset="1" />
                </gradient>
            </aapt:attr>
        </path>
    </vector>

但它在 Android 6 中崩溃了。这里有什么问题?

解决方法

您的矢量图像仅支持 API 24+。您可以将上面的 drawable 用于渐变背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <gradient
        android:angle="180"
        android:startColor="#FFE8E7FA"
        android:endColor="#FFDAD4F9"
        android:type="linear" />

    <corners android:radius="10dp" />

</shape>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...