如何使用可绘制的形状制作如下图所示的形状?

how to make a shape like the picture below using a shape drawable?

我在Android编程中遇到了困难,我想通过下面的代码制作一个像我上传的图片“supposed.bmp" I uploaded. But I don't know how to do that, I only made one like "actual.bmp”那样的形状。

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <corners
        android:radius="10dp"/>

    <solid
        android:color="#199900"/>

    <size
        android:height="20dp"
        android:width="20dp"/>

    <stroke
        android:width="2dp"
        android:color="#004A00"/>
</shape>

请帮我更正上面的代码,非常感谢!

试试这个

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

<item>
    <shape android:shape="oval">
        <solid android:color="#199900" />
        <size android:width="15dp" android:height="15dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <stroke android:width="1dp" android:color="@android:color/transparent" />
        <solid android:color="#ffffff" />
        <size android:width="10dp" android:height="10dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <stroke  android:width="6dp" android:color="@android:color/transparent" />
        <solid android:color="#199900" />
        <size android:width="10dp" android:height="10dp" />
    </shape>
</item>
</layer-list>

希望对您有所帮助:

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

    <item xmlns:android="http://schemas.android.com/apk/res/android">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid
                android:color="#ffffff"/>

            <size
                android:height="20dp"
                android:width="20dp"/>

            <stroke
                android:width="10dp"
                android:color="#004A00"/>
        </shape>
    </item>

    <item xmlns:android="http://schemas.android.com/apk/res/android"
        android:bottom="30dp"
        android:left="30dp"
        android:top="30dp"
        android:right="30dp">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid
                android:color="#004A00"/>

            <size
                android:height="20dp"
                android:width="20dp"/>
        </shape>
    </item>

</layer-list>

已编辑:

您可以避免使用 size 属性。

增大或减小 topbottomrightleft 值以使内圆变小或变大。

试试这个

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <solid android:color="#0c720c"/>
        <size
            android:width="100dp"
            android:height="100dp"/>
    </shape>
</item>

<item>
    <shape android:shape="oval">
        <stroke android:width="12dp"
            android:color="@color/transparent"/>
        <solid android:color="#fff"/>
    </shape>
</item>

<item>
    <shape android:shape="oval">
        <stroke android:width="50dp"
            android:color="@color/transparent"/>
        <solid android:color="#0c720c"/>
    </shape>
</item>


</layer-list>