Android 中使用 xml 自定义形状

Dhi*_*kar 2 xml android android-layout android-custom-drawable

我正在尝试绘制一个自定义形状,我可以将其用作布局的背景。但我不能这样做。是否可以使用 android.xml 中的 xml 绘制如下形状:我不知道如何从矩形的垂直中心切割半圆形。

在此输入图像描述

Fer*_*med 6

用于layer-list制作此自定义形状drawable

/res/drawable/custom_shape.xml:

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

    <!-- Transparent Rectangle -->
    <item>
        <shape android:shape="rectangle">
            <corners
                android:topLeftRadius="8dp"
                android:topRightRadius="8dp"
                android:bottomLeftRadius="4dp"
                android:bottomRightRadius="4dp" />

            <size
                android:width="300dp"
                android:height="100dp" />
            <solid android:color="#FFFFFF" />
        </shape>
    </item>

    <!-- Left Half-Circle -->
    <item
        android:left="-10dp"
        android:right="290dp"
        android:top="40dp"
        android:bottom="40dp">
        <shape android:shape="oval">
            <solid android:color="#000000" />
        </shape>
    </item>

    <!-- Right Half-Circle -->
    <item
        android:left="290dp"
        android:right="-10dp"
        android:top="40dp"
        android:bottom="40dp">
        <shape android:shape="oval">
            <solid android:color="#000000" />
        </shape>
    </item>

    <!-- Middle Dotted Line -->
    <item
        android:left="10dp"
        android:right="10dp">
        <shape android:shape="line">
            <stroke
                android:width="1dp"
                android:dashWidth="10px"
                android:dashGap="10px"
                android:color="#ff00"/>

        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

使用:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/custom_shape"/>
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

希望这会有所帮助~