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?

Réponses:


407

Vous pouvez utiliser lineSpacingExtraet lineSpacingMultiplierdans votre fichier XML.


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"/>

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.



14

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


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"/>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.