Remplissage Android TextView entre les lignes

217

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

Çağatay Gürtürk
la source

Réponses:

407

Vous pouvez utiliser lineSpacingExtraet lineSpacingMultiplierdans votre fichier XML.

Romain Guy
la source
13
lineSpacingMultiplier fonctionne pour moi avec des valeurs flottantes comme: android: lineSpacingMultiplier = "0.8"
Juan Saravia
7
Pouvez-vous expliquer comment cela fonctionne? D'où proviennent ces mesures? Pouvez-vous donner des exemples concernant la police et la langue? Par exemple, l'espacement des lignes est mesuré à partir de la ligne de base, mais la langue de l'Asie de l'Est n'a pas de ligne de base. Où est défini l'interligne par défaut? Est-ce dans la police elle-même?
Christopher Perry
Par exemple: android: lineSpacingExtra = "2dp"
nibbana
73

Si vous voulez un remplissage entre le texte, essayez LineSpacingExtra="10dp"

<TextView
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:lineSpacingExtra="10dp"/>
chanu panwar
la source
29

Cette réponse supplémentaire montre l'effet de la modification de l'espacement des lignes.

entrez la description de l'image ici

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 1et l'espacement supplémentaire par défaut est 0.

Suragch
la source
17

Vous pouvez utiliser la TextView.setLineSpacing(n,m)fonction.

Vishnu Haridas
la source
14

L'ajout android:lineSpacingMultiplier="0.8"peut rendre l'espacement des lignes à 80%.

Ajitsen
la source
4

La solution est simple. Utilisez simplement ces deux attributs dans votre TextView, lineSpacingExtraetlineSpacingMultiplier

Par exemple,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.5"
    android:lineSpacingExtra="5dp"/>
Pouria Hemati
la source