Android TextView melapisi antar garis


217

Saya memiliki TextView yang menampilkan teks panjang. Saya ingin memberikan ruang antara garis seperti di CSS dengan properti garis-tinggi. Bagaimana saya bisa melakukannya?

Jawaban:


407

Anda dapat menggunakan lineSpacingExtradan lineSpacingMultiplierdalam file XML Anda.


13
lineSpacingMultiplier berfungsi untuk saya dengan nilai float seperti: android: lineSpacingMultiplier = "0.8"
Juan Saravia

7
Bisakah Anda menjelaskan bagaimana cara kerjanya? Dari mana pengukuran ini diambil? Bisakah Anda memberikan contoh terkait dengan font dan juga bahasa? Misalnya, spasi garis diukur dari garis dasar, tetapi bahasa Asia Timur tidak memiliki garis dasar. Di mana penspasian garis default ditentukan? Apakah itu dalam fonta itu sendiri?
Christopher Perry

Sebagai contoh: android: lineSpacingExtra = "2dp"
nibbana


73

Jika Anda ingin mengisi antar teks, coba LineSpacingExtra="10dp"

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

29

Jawaban tambahan ini menunjukkan efek mengubah spasi baris.

masukkan deskripsi gambar di sini

Anda dapat mengatur pengganda dan / atau spasi tambahan dengan

textView.setLineSpacing(float add, float mult)

Atau Anda bisa mendapatkan nilainya

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

dimana rumusnya

lineHeight = fontMetricsLineHeight * mult + add

Pengganda default adalah 1dan jarak tambahan default adalah 0.



14

Menambahkan android:lineSpacingMultiplier="0.8"dapat membuat penspasian garis menjadi 80%.


4

Solusinya sederhana. Cukup gunakan dua atribut ini di Anda TextView, lineSpacingExtradanlineSpacingMultiplier

Sebagai contoh,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.5"
    android:lineSpacingExtra="5dp"/>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.