Android TextView Auffüllen zwischen Zeilen


217

Ich habe eine Textansicht, die einen langen Text anzeigt. Ich möchte etwas Abstand zwischen Zeilen wie in CSS mit der Eigenschaft Zeilenhöhe geben. Wie kann ich es tun?

Antworten:


407

Sie können lineSpacingExtraund lineSpacingMultiplierin Ihrer XML-Datei verwenden.


13
lineSpacingMultiplier funktioniert für mich mit Float-Werten wie: android: lineSpacingMultiplier = "0.8"
Juan Saravia

7
Können Sie erklären, wie diese funktionieren? Woher stammen diese Messungen? Können Sie Beispiele in Bezug auf die Schriftart und auch die Sprache geben? Zum Beispiel wird der Zeilenabstand von der Grundlinie gemessen, aber die ostasiatische Sprache hat keine Grundlinie. Wo ist der Standardzeilenabstand definiert? Ist es in der Schrift selbst?
Christopher Perry

Zum Beispiel: android: lineSpacingExtra = "2dp"
nibbana


73

Wenn Sie zwischen Text auffüllen möchten, versuchen Sie es LineSpacingExtra="10dp"

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

29

Diese ergänzende Antwort zeigt den Effekt der Änderung des Zeilenabstands.

Geben Sie hier die Bildbeschreibung ein

Sie können den Multiplikator und / oder den zusätzlichen Abstand mit einstellen

textView.setLineSpacing(float add, float mult)

Oder Sie können die Werte mit erhalten

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

wo die Formel ist

lineHeight = fontMetricsLineHeight * mult + add

Der Standardmultiplikator ist 1und der zusätzliche Standardabstand ist 0.



14

Durch Hinzufügen android:lineSpacingMultiplier="0.8"kann der Zeilenabstand auf 80% erhöht werden.


4

Die Lösung ist einfach. Verwenden Sie einfach diese beiden Attribute in Ihrem TextView, lineSpacingExtraundlineSpacingMultiplier

Beispielsweise,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.5"
    android:lineSpacingExtra="5dp"/>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.