Android TextView relleno entre líneas

217

Tengo un TextView que muestra un texto largo. Quiero dar algo de espacio entre líneas como en CSS con la propiedad de altura de línea. ¿Cómo puedo hacerlo?

Çağatay Gürtürk
fuente

Respuestas:

407

Puede usar lineSpacingExtray lineSpacingMultiplieren su archivo XML.

Romain Guy
fuente
13
lineSpacingMultiplier funciona para mí con valores flotantes como: android: lineSpacingMultiplier = "0.8"
Juan Saravia
77
¿Puedes explicar cómo funcionan? ¿De dónde se toman estas medidas? ¿Puedes dar ejemplos con relación a la fuente y también al idioma? Por ejemplo, el espaciado entre líneas se mide desde la línea de base, pero el idioma del este asiático no tiene línea de base. ¿Dónde se define el espaciado de línea predeterminado? ¿Está en la fuente misma?
Christopher Perry el
Por ejemplo: android: lineSpacingExtra = "2dp"
nibbana
73

Si desea rellenar entre texto intente LineSpacingExtra="10dp"

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

Esta respuesta complementaria muestra el efecto de cambiar el espacio entre líneas.

ingrese la descripción de la imagen aquí

Puede configurar el multiplicador y / o el espaciado adicional con

textView.setLineSpacing(float add, float mult)

O puede obtener los valores con

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

donde esta la formula

lineHeight = fontMetricsLineHeight * mult + add

El multiplicador predeterminado es 1y el espaciado adicional predeterminado es 0.

Suragch
fuente
17

Puedes usar la TextView.setLineSpacing(n,m)función.

Vishnu Haridas
fuente
14

Agregar android:lineSpacingMultiplier="0.8"puede hacer que el espaciado entre líneas sea del 80%.

Ajitsen
fuente
4

La solución es simple. Simplemente use estos dos atributos en su TextView, lineSpacingExtraylineSpacingMultiplier

Por ejemplo,

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