行之间的Android TextView填充


217

我有一个显示长文本的TextView。我想给行之间留一些空间,例如CSS中的line-height属性。我该怎么做?

Answers:


407

您可以在XML文件中使用lineSpacingExtralineSpacingMultiplier


13
lineSpacingMultiplier对我有用以下浮动值:android:lineSpacingMultiplier =“ 0.8”
Juan Saravia

7
您能解释一下这些工作原理吗?这些测量值来自哪里?您可以举一些与字体和语言有关的示例吗?例如,行距是从基线开始测量的,但是东亚语言没有基线。默认行距在哪里定义?它在字体本身中吗?
Christopher Perry

例如:android:lineSpacingExtra =“ 2dp”
nibbana


73

如果要在文本之间填充,请尝试 LineSpacingExtra="10dp"

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

29

此补充答案显示了更改行距的效果。

在此处输入图片说明

您可以设置乘数和/或额外的间距

textView.setLineSpacing(float add, float mult)

或者您可以通过以下方式获取值

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

公式在哪里

lineHeight = fontMetricsLineHeight * mult + add

默认乘数为1,默认额外间距为0



14

添加android:lineSpacingMultiplier="0.8"可以使行距达到80%。


4

解决方案很简单。只需使用你的这两个属性TextViewlineSpacingExtralineSpacingMultiplier

例如,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lineSpacingMultiplier="1.5"
    android:lineSpacingExtra="5dp"/>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.