XML Drawable создает непреднамеренную линию в середине моей прозрачной формы кольца - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь создать полый круг в 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>

Опять проблема в том, что я получаю четкую и четкую линию, начинающуюся в середине фигуры и идущую прямо к краю полого круга, прозрачность работает, но у меня нет Идея, что вызывает линию в середине. Любая помощь приветствуется.

screenshot of the drawable from android studio

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020

Вы можете использовать android:shape="oval" вместо android:shape="ring".

0 голосов
/ 10 апреля 2020

Вы можете использовать форму кольца, но вы должны использовать 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 выглядит странно на кольцах, потому что форма создается как область, для которой описан край непрерывным путем. Цвет solid используется для заполнения области, цвет обводки применяется к краю.

0 голосов
/ 10 апреля 2020

Просто замените shape="ring" на shape="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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...