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?

Çağatay Gürtürk
quelle

Antworten:

407

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

Romain Guy
quelle
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"/>
Chanu Panwar
quelle
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.

Suragch
quelle
17

Sie können die TextView.setLineSpacing(n,m)Funktion verwenden.

Vishnu Haridas
quelle
14

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

Ajitsen
quelle
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"/>
Pouria Hemati
quelle