J'ai le xml
suivant dans le dossier dessinable (circle_status.xml
) pour créer une bague:
<?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>
Et insérez le dessinable comme un arrière-plan d'une mise en page relative, comme suit:
<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>
Le problème, c'est que dans la disposition relative, un cercle n'est pas un anneau.
Je me réponds.
Il semble que le problème se trouve dans l'éditeur de mise en page graphique d'Eclipse, le code fonctionne correctement dans un appareil réel.
Notez qu'un anneau est un ovale sans remplissage. Juste avec un coup. Et la vue qui la tient devrait être un carré parfait.
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<stroke
Android:width="1dp"
Android:color="@color/blue" />
</shape>
Et la vue qui le tient
<ImageView
Android:layout_width="10dp"
Android:layout_height="10dp"
Android:src="@drawable/ring" />
Ce hack montre une sonnerie à la fois sur l'appareil et 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>
Tu dois utiliser <stroke>
tag au lieu de <solid>
tag pour l'anneau dans un <shape>
tag. En utilisant <solid>
tag dans un <shape>
tag génère un cercle et non un anneau.
<solid>
la balise peut être utilisée pour la couleur d'arrière-plan de l'anneau et <stroke>
pour la couleur du corps de la bague.