首页 > 解决方案 > 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,10 0,0 1,334 200L10,200A10,10 0,0 1,0 190L0,10A10,10 0,0 1,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 中崩溃了。这里有什么问题?

标签: androidandroid-vectordrawable

解决方案


您的矢量图像仅支持 API 24+。您可以将上述可绘制对象用于渐变背景

<?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>

推荐阅读