Форма кольца в android


У меня есть следующий xml в drawable folder (circle_status.xml) для создания кольца:

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

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

</shape>

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

<RelativeLayout
        android:id="@+id/RelativeLayout_Status"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/circle_status" >
    </RelativeLayout>

Проблема в том, что в релятивистском описании появляется круг, а не кольцо.

4 30

4 ответа:

Я отвечаю сам себе.

Похоже, проблема в графическом редакторе макета Eclipse, код прекрасно работает в реальном устройстве.

Обратите внимание, что кольцо-это овал без заполнения. Всего лишь одним ударом. И вид, удерживающий его, должен быть идеальным квадратом.

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<stroke
    android:width="1dp"
    android:color="@color/blue" />
</shape>

И вид, удерживающий его

<ImageView
     android:layout_width="10dp"
     android:layout_height="10dp"
     android:src="@drawable/ring" />

Этот хак показывает кольцо как на устройстве, так и на Android Studio:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring" android:innerRadius="23dp" android:thickness="0dp">
    <stroke android:width="2dp" android:color="#ababf2" />
</shape>

Вы должны использовать тег <stroke> вместо тега <solid> для кольца в теге <shape>. При использовании тега <solid> в теге <shape> получается круг, а не кольцо.

<solid> тег может использоваться для цвета фона кольца и <stroke> для цвета тела кольца.