Je crée une TextView
avec un tirable dessous, dans une GridLayout
.
Je veux amener le drawable au milieu de la TextView
; J'ai essayé avec setCompoundDrawablePadding(-75)
et cela ne change que la position du texte.
Code actuel:
TextView secondItem = new TextView(this);
GridLayout.LayoutParams second = new GridLayout.LayoutParams(row2, col1);
second.width = halfOfScreenWidth;
second.height = (int) (quarterScreenWidth * 1.5);
secondItem.setLayoutParams(second);
secondItem.setBackgroundResource(R.color.MenuSecond);
secondItem.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, R.drawable.ic_action_new);
secondItem.setText("Text");
secondItem.setCompoundDrawablePadding(-180);
secondItem.setGravity(Gravity.CENTER);
secondItem.setTextAppearance(this, Android.R.style.TextAppearance_Large_Inverse);
gridLayout.addView(secondItem, second);
Comment puis-je définir le texte et dessiner au milieu de la TextView
?
Vous devrez associer drawablePadding
et padding
pour obtenir le résultat souhaité.
En XML:
Android:drawablePadding = paddingValue
ou
Par programme:
TextView txt;
txt.setCompoundDrawablePadding(paddingValue)
Android: drawablePadding est le moyen le plus simple d’ajouter du rembourrage à l’icône dessinable, mais vous ne pouvez pas spécifier un remplissage latéral spécifique comme paddingRight ou paddingLeft de l’icône dessinable. Cela donne un rembourrage de chaque côté du dessinable.
Vous pouvez utiliser liste de couches.
Avant:
Créez un fichier xml pour shape - shape_rectangle.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:right="5dp">
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="@color/my_color" />
<size
Android:width="5dp"
Android:height="5dp" />
</shape>
</item>
</layer-list>
Après:
En XML, il y a quelque chose comme Android:right
. Vous pouvez également ajouter top
, left
, bottom
. De cette façon, vous pouvez donner par exemple: un rembourrage à gauche et à droite pour dessiner sans redimensionner la hauteur totale de textView.
<Button
Android:id="@+id/otherapps"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/btn_background"
Android:text="@string/other_apps"
Android:layout_weight="1"
Android:fontFamily="cursive"
Android:layout_marginBottom="10dp"
Android:drawableLeft="@drawable/ic_more"
Android:paddingLeft="8dp" //for drawable padding to the left
Android:textColor="@Android:color/holo_red_light" />`enter code here`