278 votes

Remplissage entre les lignes d'un TextView Android

J'ai un TextView qui affiche un long texte. Je veux donner de l'espace entre les lignes comme en CSS avec la propriété line-height. Comment puis-je le faire ?

485voto

Romain Guy Points 57114

Vous pouvez utiliser lineSpacingExtra et lineSpacingMultiplier dans votre fichier XML.

18 votes

LineSpacingMultiplier fonctionne pour moi avec des valeurs flottantes comme : Android:lineSpacingMultiplier="0.8"

9 votes

Pouvez-vous expliquer comment ils fonctionnent ? D'où proviennent ces mesures ? Pouvez-vous donner des exemples en rapport avec la police et la langue ? Par exemple, l'interligne est mesurée à partir de la ligne de base, mais les langues d'Asie orientale n'ont pas de ligne de base. Où est défini l'interligne par défaut ? Est-il dans la police elle-même ?

4 votes

Par exemple : Android:lineSpacingExtra="2dp"

105voto

chanu panwar Points 856

Si vous voulez un remplissage entre les textes, essayez LineSpacingExtra="10dp"

<TextView
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:lineSpacingExtra="10dp"/>

87voto

sealz Points 3122

Vous pouvez vous pencher sur android:lineSpacingExtra et l'appliquer à votre XML

Des informations supplémentaires sont disponibles sur cette page

ou la méthode connexe public void setLineSpacing (float add, float mult)

Informations supplémentaires ici

63voto

Suragch Points 197

Ce complément de réponse montre l'effet de la modification de l'interligne.

enter image description here

Vous pouvez définir le multiplicateur et/ou l'espacement supplémentaire avec

textView.setLineSpacing(float add, float mult)

Ou vous pouvez obtenir les valeurs avec

int lineHeight = textView.getLineHeight();
float add = tvSampleText.getLineSpacingExtra();          // API 16+
float mult = tvSampleText.getLineSpacingMultiplier();    // API 16+

où la formule est

lineHeight = fontMetricsLineHeight * mult + add

Le multiplicateur par défaut est 1 et l'espacement supplémentaire par défaut est 0 .

21voto

Ajitsen Points 68

Ajout de android:lineSpacingMultiplier="0.8" peut faire passer l'interligne à 80%.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X