Android Shape

ShapeDrawable ci permette di disegnare in un file xml, una forma geometrica (rettangolo,linea, anello,ovale) inclusi colori e sfumature.
Per specificare il tipo di forma utilizziamo l’elemento xlm:
android:shape=rectangle
android:shape=line
android:shape=ring
android:shape=oval
Per gli elementi di forma abbiamo a disposizione:
<gradient: può essere lineare, radiale o sweep.
<solid: per specificare un colore uniforme.
<padding per impostare un riempimento.
<size: per impostare la dimensione della forma creata
<corners: per specificare il raggio di arrotondamento degli angoli.
In questo esempio utilizziamo le quattro forme con alcuni dei loro attributi.

Su res/drawable andiamo a creare 5 file:

shape_radial.xml
<?xml version=”1.0″ encoding=”utf-8″?>

<shape xmlns:android=”http://schemas.android.com/apk/res/android”>&nbsp;
<gradient 
android:startColor=”#22CC00″ 
android:endColor=”#CC8000″ 
android:type=”sweep”
android:angle=”90.0″ /> 
</shape> 

shape_oval.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
    android:shape=”oval” >
<solid
android:color=”#1FEAAF”  />
<size
android:height=”160dp”
android:width=”280dp”  />
</shape>

shape_line.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
    android:shape=”line”
android:useLevel=”false”>
<stroke
        android:width=”3dp”
        android:color=”#BAFF99″ />
<size
        android:width=”300dp”
android:height=”100dp” />
</shape>

shape_ring.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
    android:shape=”ring”
android:innerRadius=”20dp”
android:useLevel=”false”>
<stroke
        android:width=”2dp”
        android:color=”#FFFFFF” />
</shape>

shape_rectangle.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<shape xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:shape=”rectangle”>
<corners
        android:bottomRightRadius=”10dp”
        android:radius=”40dp” />
<gradient
        android:angle=”45″
        android:endColor=”#AAFFFA”
        android:startColor=”#018FFF”
        android:type=”linear” />
<size
        android:width=”350dp”
        android:height=”100dp” />
<stroke
        android:width=”4dp”
        android:color=”#FFFFFF” />
</shape>

activity_main.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:background=”@drawable/shape_radial”
android:orientation=”vertical”>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Shape”
android:background=”@drawable/shape_oval”
android:textSize=”100sp”/>
<ImageView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:background=”@drawable/shape_line”/>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Click”
android:background=”@drawable/shape_ring”/>
<ImageView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:background=”@drawable/shape_line”/>
<EditText
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:hint=”Insert text”
android:background=”@drawable/shape_rectangle”
android:textSize=”30sp”
android:textColor=”#2626C5″/>
</LinearLayout>