2

J'ai ajouté une image Démarrage dessinable dans un TextView. Le problème est que je ne peux pas contrôler la gravité de cette Drawable dans TextViewModifier la gravité de l'image dans la vue texte

Ce que je dois réaliser What i need to achieve

Ce que j'ai accompli jusqu'à présent

What i have achieved so far

Ceci est mon TextView

 <TextView 
      android:id="@+id/tv_8_digit_check" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:drawablePadding="@dimen/dimen_4" 
      android:drawableStart="@drawable/ic_validate" 
      android:text="@string/at_least_8_characters_txt" 
      android:textColor="@color/white_trans" 
      android:textSize="12sp" /> 

Toute suggestion sur comment puis-je définir la gravité de ce Drawable à p/commence? Merci

Répondre

2
  1. Essayez d'utiliser android:gravity="top"

    si elle na pas travailler ensuite avec une marge négative comme celui-ci

  2. android:drawablePadding="-20sp"

  3. Une autre alternative est de prendre un ImageView à côté TextView l'intérieur LinearLayout de sorte que vous pouvez appliquer la gravité

+1

gravity top ne fonctionne pas dans mon cas. et à propos du rembourrage je dois déjà assigner un rembourrage à d'autres fins. –

+0

alors allez pour la troisième idée – Redman

+0

oui finissent par faire la troisième solution. Je connais cette solution mais je pensais que quelqu'un pourrait avoir une meilleure solution pour cela. merci –

2

case Utiliser au lieu de textview Drawable, et ajouter des instructions drawable où vous pouvez utiliser cette image

+0

bonne idée. avoir à essayer que –

+0

Bonne suggestion pour ce type de vue ... – Bhavnik

0

Je vous suggère de mettre l'image à imageview. Placez l'imageview et le textview dans une Linearlayout et réglez la gravité sur top. Réduisez la taille du texte et de l'image aussi.

1
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="top"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="@dimen/dimen_4" 
     android:src="@drawable/ic_validate"/> 
    <TextView 
     android:id="@+id/tv_8_digit_check" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/at_least_8_characters_txt" 
     android:textColor="@color/white_trans" 
     android:textSize="12sp" /> 

</LinearLayout> 
+0

je sais que cette solution fonctionnerait. mais le problème est l'imbrication des mises en page. et voir l'optimisation si c'était pour ajouter une autre vue dans la mise en page pourquoi android construit drawable composé à définir dans le même TextView? –

+0

Habituellement, lorsque le texte est court, il est préférable de dessiner un composé, mais lorsque vous voulez quelque chose de personnalisé, cela ne peut pas aider. Vous pouvez mettre android: maxLines = "1" et réduire la taille du texte, mais cela peut causer un problème sur les petits écrans. –

+0

Vous pouvez également créer TextView supplémentaire pour "Caractère" sous TextView principal –