Forme de l'anneau dans android

J'ai de la suite xml dans le dossier drawable (circle_status.xml) pour créer un anneau:

<?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 drawable comme un arrière-plan d'un relativeLayout, comme suivant:

<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, est dans le relativeLayout apparaissent un cercle pas un anneau.

30
demandé sur Jonik 2013-06-20 18:29:47

4 réponses

Je me réponds.

Il semble que le problème soit dans L'éditeur de mise en page graphique D'Eclipse, le code fonctionne bien dans un périphérique réel.

22
répondu suanido 2013-06-21 07:45:40

Notez qu'un anneau est un ovale, sans remplissage. Avec juste un accident vasculaire cérébral. Et la vue le tenant, 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 maintient

<ImageView
     android:layout_width="10dp"
     android:layout_height="10dp"
     android:src="@drawable/ring" />
22
répondu Reinherd 2015-07-07 15:14:15

Ce hack montre un anneau 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>
8
répondu snodnipper 2015-02-18 11:01:18

Vous devez utiliser <stroke> tag au lieu de <solid> tag pour ring dans une balise <shape>. L'utilisation de la balise <solid> dans une balise <shape> entraîne un cercle et non un anneau.

<solid> tag peut être utilisé pour la couleur de fond de l'anneau et <stroke> pour la couleur du corps de l'anneau.

5
répondu BAHMAN 2015-05-01 11:06:47