Как создать форму кольца в Android?
с этим кодом я получаю только границу:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="15dp"
android:thickness="2dp"
android:useLevel="false">
<solid android:color="#4d4d4d" />
</shape>
как я могу создать форму кольца, как показано ниже:
![enter image description here]()
Ответы
Ответ 1
2dp наружное кольцо с разрывом 2dp:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:top="4dp"
android:right="4dp"
android:bottom="4dp"
android:left="4dp">
<shape
android:shape="oval">
<solid android:color="#4d4d4d" />
</shape>
</item>
<item>
<shape
android:shape="oval">
<stroke android:width="2dp"
android:color="#4d4d4d"/>
</shape>
</item>
</layer-list>
Ответ 2
Ring drawable - сопоставление элементов, использование слоя-списка
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="6dip" android:left="6dip">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="3"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />
<stroke
android:width="5dp"
android:color="@color/maroon" />
</shape>
</item>
<item android:right="20dip"
android:left="20dip"
android:bottom="0dip"
android:top="34dip">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:innerRadius="0dp">
<solid android:color="@color/maroon" />
<stroke android:width="1dip" android:color="@android:color/transparent" />
</shape>
</item>
<item android:right="20dip"
android:left="20dip"
android:bottom="34dip"
android:top="0dip">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:innerRadius="0dp">
<solid android:color="@color/maroon" />
<stroke android:width="1dip" android:color="@android:color/transparent" />
</shape>
</item>
</layer-list>
![enter image description here]()
Xml, привлекаемый всеми средствами, более полезными, чем статические изображения, их можно корректно масштабировать без использования библиотеки .9 или создавать множество разных размеров из Gimp, Photoshop
Ответ 3
Я думаю, что использование формы в android лучше, чем форма в фотошопе.
Правильно, создав его более привлекательным, потому что вы можете изменить цвет или форму с помощью кода вместо создания нового ресурса изображения, например.
Создайте FrameLayout
с 2 Views
и a TextView
. Первым фоном представления будет ваше внешнее кольцо (форма), а второе - круг (форма). Наконец, последний View
(больший z-индекс) ваш TextView
:
<FrameLayout>
<View/><!-- (outer ring)-->
<View/><!-- (filed circle)-->
<TextView/><!-- (text)-->
</FrameLayout>
Ответ 4
<item>
<shape
android:innerRadiusRatio="4"
android:shape="ring"
android:thicknessRatio="15"
android:useLevel="false" >
<solid android:color="@color/white_color" />
<size
android:height="48dip"
android:width="48dip" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="0dp"
android:thickness="55dp"
android:useLevel="false">
<solid android:color="@color/white_color"/>
<size android:height="200dp"
android:width="200dp"/>
<stroke android:color="@color/green_color" android:width="5dp"/>
</shape>
</item>
Ответ 5
<?xml version="1.0" encoding="utf-8"
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:innerRadius="10dp" android:shape="ring" android:thickness="2dp" android:useLevel="false">
<solid android:color="#dfdfdf" />
</shape>
</item>
</selector>
Ответ 6
Вам нужно будет создать рисунок и установить его в качестве фона.
shape_primary_ring.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.5"
android:shape="ring"
android:thickness="4dp"
android:useLevel="false">
<solid android:color="@color/colorPrimary"/>
</shape>
предварительный просмотр
![Ring Drawable Preview]()