java – 如何使用Android xml形状在圆圈内绘制一个圆圈?

我正在试图为我的应用程序创建一个寻找栏的拇指,我想要一个内圈,由一个不同的,更大(半透明)的外圈包围。我试图使用layer-list,但是我有问题。以下是我的代码…

<?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="#00f" />

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

<item>
    <shape
        android:shape="oval" >
        <solid android:color="#f00" />

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

</layer-list>

我会期望在一个较大的蓝色圆圈上看到一个小的红色圆圈,但是我看到的只是一个小红圈。有人有什么想法吗?

最佳答案
我已经得到这个工作的唯一方法是为内部(即顶部)圆定义一个透明笔画,这是大小圆圈的大小之间的差异。

例如:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Larger blue circle in back -->
<item>
    <shape android:shape="oval">
        <solid android:color="#00f"/>
        <size
                android:width="15dp"
                android:height="15dp"/>
    </shape>
</item>
<!-- Smaller red circle in front -->
<item>
    <shape android:shape="oval">
        <!-- transparent stroke = larger_circle_size - smaller_circle_size -->
        <stroke android:color="@android:color/transparent"
                android:width="5dp"/>
        <solid android:color="#f00"/>
        <size
                android:width="10dp"
                android:height="10dp"/>
    </shape>
</item>
</layer-list>

…看起来像这样:

转载注明原文:java – 如何使用Android xml形状在圆圈内绘制一个圆圈? - 代码日志