1

我正在尝试使用 xml 中的环形在 xml 中创建一个空心圆。然而,我最终得到一条似乎显示圆半径的线,从圆环的中间开始向右移动。

我要实现的形状的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false">

<solid android:color="@android:color/transparent"/>

<stroke
    android:width="5dp"
    android:color="#FFFFFF"/>

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

同样,问题是我从形状的中间开始得到一条清晰而明显的线,一直到我拥有的空心圆的边缘,透明度有效,但我不知道是什么导致中间的线. 任何帮助表示赞赏。

来自android studio的drawable的屏幕截图

4

3 回答 3

0

只需替换shape="ring"byshape="oval"

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="oval"
android:thicknessRatio="2"
android:useLevel="false">

<solid android:color="@android:color/transparent"/>

<stroke
    android:width="5dp"
    android:color="#FFFFFF"/>

<size
    android:width="75dp"
    android:height="75dp"/>
</shape>
于 2020-04-10T18:28:51.570 回答
0

您可以使用android:shape="oval"而不是android:shape="ring".

于 2020-04-10T18:38:25.517 回答
0

您可以使用环形,但您应该使用solid而不是stroke. 您可以尝试,android:innerRadius直到 android:thicknessRatio形状看起来像您想要的那样。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="10dp"
    android:shape="ring"
    android:thicknessRatio="10"
    android:useLevel="false">

    <solid android:color="@android:color/holo_red_dark"/>

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

stroke在环上看起来很奇怪,因为形状被创建为一个区域,其边缘由不间断的路径描述。纯色用于填充区域,描边颜色应用于边缘。

于 2020-04-10T20:19:03.987 回答