Comment dessiner un cercle à l'intérieur d'un cercle à l'aide de Android xml formes?
Je suis en train de faire une base pour un seekbar pour mon application, et je veux un cercle entouré par un autre, plus grand (semi-transparent) cercle extérieur. Je suis en train d'utiliser layer-list
, mais je vais avoir des problèmes. Ci-dessous mon code...
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:shape="oval" >
<solid android:color="#00f" />
<size
android:height="15dp"
android:width="15dp" />
</shape>
</item>
<item>
<shape
android:shape="oval" >
<solid android:color="#f00" />
<size
android:height="10dp"
android:width="10dp" />
</shape>
</item>
</layer-list>
Je m'attends à voir un petit cercle rouge sur le dessus d'un plus grand cercle bleu, mais tout ce que je vois est le petit cercle rouge. Quelqu'un a une idée?
- Vous voulez probablement pour dessiner un ANNEAU à la place de l'OVALE?
- Ce que je veux, c'est quelque chose de similaire à la seekbar que l'application Google Play Musique utilise... ils ont un cercle orange au milieu transparent orange cercle qui l'entoure. Avez-vous de code qui pourrait imiter ce? Je suis nouveau sur Android à l'aide de XML un drawable, donc je suis un peu dans l'obscurité, avec l'anneau de méthode.
- Avez-vous vu/essayé ceci?: stackoverflow.com/questions/4413652/...
- C'est seulement à l'aide de la couche de liste, comme je le fais. J'ai remarqué que si je mets le
android:top="3dp" android:left="3dp"
sur le deuxième point, je vois maintenant deux cercles. Ce qui est bizarre, c'est que les deux cercles sont réglés à la même hauteur et en largeur, même si j'ai déclaré différemment dans le<size>
attributs ci-dessus. Ils semblent tous deux à défaut selon la taille est plus grande.
Vous devez vous connecter pour publier un commentaire.
Le seul moyen que j'ai obtenu ce travail est de définir un transparent course pour l'intérieur (c'est à dire, du haut) cercle qui est la différence entre la taille de la plus grande et plus petit cercle.
Par exemple, ceci:
...ressemble à ceci:
espère que ça va aider. C'est drawable *.xml
Il est tard, mais peut-être utile,
vous pouvez utiliser un rembourrage pour le centre du cercle.
J'ai réussi à résoudre ce problème en définissant la largeur et la hauteur de la
<item>
dans le<layer-list>
. Probablement pas comme meilleure pratique, mais semblent ok comme c'était pour le fond de l'icône dans la vue liste, qui avait fixé les dimensions.android:height
etandroid:width
besoin de l'API 23+ pour les formes. Utiliser le<size>
tag de la place pour des appareils plus anciens.Je me suis retrouvé ici à la recherche de dessin de cercle concentrique trouve uniquement des réponses avec la couche de la liste afin d'ajouter ma réponse avec seulement l'aide de la
shape
, j'espère que ça aidera quelqu'un.Et c'est le résultat.
Espère ci-dessous extrait de code aide 🙂
c'est une version courte de Sean Barbeau réponse
Juste vous devez utiliser
Shap
Attributcode xml drawable
Sortie