How to create ring shape drawable in android? How to create ring shape drawable in android? android android

How to create ring shape drawable in android?


2dp outer ring with a 2dp gap:

<?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>


You will need to create a drawable and set it as a background.

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>

Preview

Ring Drawable Preview


Ring drawable is juxtaposition of elements, use layer-list

<?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 drawable by all means more useful than static images, they can be correctly scaled without need of .9 library or generating set of different sizes from Gimp, Photoshop