Android cercle d'arrière-plan devient ovale
Je veux mettre un cercle d'arrière-plan sur un textview. Le cercle devient ovale lors de son rendu.
Ma mise en page XML:
<TextView
android:id="@+id/amount_key"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginRight="2dp"
android:gravity="center"
android:background="@drawable/circle"
android:layout_marginLeft="20dp"
android:text="3\ndays"
android:padding="20dp"
android:textColor="#ffffff"
android:textStyle="bold"
android:textSize="25dp" />
</LinearLayout>
Mon cercle d'arrière-plan:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#79bfea"/>
</shape>
- Vous devez définir layout_weight et layout_height à valeur fixe, je pense. @sudhasri la solution ci-dessous ne fonctionne pas?
- je l'ai fait, je surdéfini onMeasure en étendant TextView pour régler la largeur que la hauteur aussi
Vous devez vous connecter pour publier un commentaire.
textView
'slayout_height
etlayout_width
àwrap_content
Si elle est toujours de forme ovale, essayez d'augmenter la largeur et la hauteur de la taille de l'étiquette. Il a travaillé pour moi!
layout_height
etlayout_width
àwrap_content
et l'ajustement de la droite de rembourrage fait le tour.Vous pouvez créer votre propre Drawable qui va limiter le rayon de la valeur min entre sa largeur et sa hauteur.
ensuite les appliquer à votre textView:
Pour obtenir ce
J'ai utilisé deux LinearLayout à l'intérieur les uns des autres et de définir des parents de la gravité de CENTRE
et c'est oval.xml à l'intérieur de drawable dossier
sans intérieure LinearLayout vous obtiendrez ce
qui le code est
J'ai étendu TextView classe pour définir la largeur que la hauteur
Et ensuite combinés avec au-dessus de Sudhasri réponse, je peux montrer exacte circulaire affichage de texte.
Donc pas besoin de donner fixe la taille et le poids.
Puisque vous utilisez
match_parent
pour la largeur et la hauteur et le réglage de drawable en arrière-plan, de sorte qu'il sera de forme ovale. Pour atteindre cercle, vous pouvez donner les mêmes dimensions de largeur et de hauteur. NA dif veux plein écran, puis vous pouvez largeur dejava
code à l'aide deWindowManager
et de définir la même valeur en largeur et en hauteur.essayer l'anneau à la place de l'ovale