Ответ 1
Я отвечаю себе.
Кажется, проблема в редакторе графических макетов Eclipse, код отлично работает на реальном устройстве.
У меня есть следующая xml
в выпадающей папке (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, следующим образом:
<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>
Проблема, в относительномLayout, представляет собой круг, а не кольцо.
Я отвечаю себе.
Кажется, проблема в редакторе графических макетов 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>
для цвета тела кольца.