我有一个TextView,我希望行间距小于1.0,即小于行之间的默认空间量。我做到了这一点:
<TextView
android:id="@+id/text_header"
android:layout_width="@dimen/text_header_width"
android:layout_height="wrap_content"
android:text="@string/header_text"
android:textSize="@dimen/text_header_text_size"
android:typeface="helvetica"
android:lineSpacingMultiplier="0.95" />
但是在底线的文字中,下降部分(例如y,g和p)正在被略微削减。换句话说,这些字母底部缺少大约2或3个像素。
我尝试过使用边距和填充但没有成功。我似乎能够通过使用指定的高度(有一点额外的空间)而不是wrap_content来解决问题,但我想尽可能避免这种情况。
答案 0 :(得分:1)
从我的测试看起来它似乎是api 21下面的Android版本的问题。 我解决了这个问题:
在我的情况下,我使用的TextView
最多有2行,最后是ellipsize。
api 21之前TextView
的样式(values/style.xml
)
<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">left</item>
<item name="android:textColor">@color/blue_dark</item>
<item name="android:textSize">16sp</item>
<item name="android:maxLines">2</item>
<item name="android:ellipsize">end</item>
<item name="android:lineSpacingExtra">-4dp</item>
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">4dp</item>
<item name="android:includeFontPadding">false</item>
</style>
我的TextView
的样式为api 21和之后(values-v21/style.xml
)
<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">left</item>
<item name="android:textColor">@color/blue_dark</item>
<item name="android:textSize">16sp</item>
<item name="android:maxLines">2</item>
<item name="android:ellipsize">end</item>
<item name="android:lineSpacingExtra">-4dp</item>
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="android:includeFontPadding">true</item>
</style>
这里的秘密主要是android:paddingBottom
,它与api 21之前的android:lineSpacingExtra
相反。在我的设备上它纠正了最后一行在底部被切断的错误。
注意:<item name="android:lineSpacingExtra">-4dp</item>
看起来相当于<item name="android:lineSpacingMultiplier">0.8</item>
。
答案 1 :(得分:-2)
试试这个
代码中的使用textView.setLineSpacing()
或
android:lineSpacingExtra="xxdp"