web-dev-qa-db-fra.com

Forme d'anneau en android

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.

32
suanido

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.

22
suanido

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" />
26
Reinherd

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

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.

5
Bahman