2015-06-05 14 views
17

con questo codice ottengo solo un confine:Come creare una forma ad anello disegnabile in 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> 

come posso fare a forma di anello, come sotto l'immagine:

enter image description here

+0

Ma perché avete bisogno di fare questo in Android, se si può semplicemente fare questa forma in Photoshop e usarlo come disegnabile? –

+7

Penso che usare una forma in Android sia meglio di una forma in Photoshop. –

+0

Mi chiedo se usare VectorDrawable sia anche una buona scelta, invece delle altre soluzioni. –

risposta

27

anello esterno 2DP con un gap 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> 
1

penso utilizzando una forma di Android è meglio di una forma in photoshop.

Correggere, creando un drawable è meglio perché è possibile modificare il colore o la forma con il codice invece di creare una nuova risorsa immagine, ad esempio. Creare uno FrameLayout con 2 Views e uno TextView. Il primo sfondo vista sarebbe il tuo anello esterno (forma) e il secondo un cerchio archiviato (forma). Infine l'ultima View (più grande z-index) il vostro TextView:

<FrameLayout> 
    <View/><!-- (outer ring)--> 
    <View/><!-- (filed circle)--> 
    <TextView/><!-- (text)--> 
</FrameLayout> 
2

anello disegnabile è giustapposizione di elementi, l'uso strato-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 disegnabile da tutti significa più utile delle immagini statiche, può essere ridimensionato correttamente senza bisogno di libreria .9 o di generare set di dimensioni diverse da Gimp, Photoshop

1

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

+0

Si prega di allegare una schermata, non posso salire, cosa è, è un orrore :) – CoolMind

+1

Come si ferma la bobina facendo una linea sulla mano destra dell'anello? –

Problemi correlati