Android TextView 设置行间距的问题 (setLineSpacing ,lineSpacingExtra, lineSpacingMultiplier)

最近的项目中,需要用到自定义控件。有个组件要获取绘制文本的高度,翻开TextView 的源码,有个方法 getLineHeight()

    public int getLineHeight() {
        return FastMath.round(mTextPaint.getFontMetricsInt(null) * mSpacingMult + mSpacingAdd);
    }
getLineHeight 的注释如下:

/**
* @return the height of one standard line in pixels. Note that markup
* within the text can cause individual lines to be taller or shorter
* than this height, and the layout may contain additional first-
* or last-line padding.
*/

返回一行的高度。注意标记内的文本可能高于或低于这个高度,布局可能包含额外的第一行或最后一行填充的部分。我们只是获取一行文字的高度,不计算间距。
所以使用 FastMath.round( mTextPaint.getFontMetricsInt(null) ) 即可。

在网上也找到了一些通过其他办法,获取文本高度方式。在测试之后,发现使用上述方法,取到的高度最精确。测试的代码就不贴了。。

Android TextView 设置行间距的问题 (setLineSpacing ,lineSpacingExtra, lineSpacingMultiplier),布布扣,bubuko.com

时间: 2024-12-25 03:16:45

Android TextView 设置行间距的问题 (setLineSpacing ,lineSpacingExtra, lineSpacingMultiplier)的相关文章

Android - TextView 设置行间距、行高

在你要设置的TextView中加入如下代码: 1.android:lineSpacingExtra 设置行间距,如”8dp”. 2.android:lineSpacingMultiplier 设置行间距的倍数,如”1.5″.

Android TextView 设置行间距

Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacingMultiplier. 关于Android下TextView中文换行问题,可查看Android自定义view-文本自动换行. 1.android:lineSpacingExtra设置行间距,如”3dp”. 2.android:lineSpacingMultiplier设置行间距的倍数,如”1.2″

Android TextView 设置字间距和行间距

1.如果您是要设置TextView的行间距 请使用(不用看2了) android:lineSpacingMultiplier="1.8" 2.如果您是要设置字间距需要自定义控件 <pre name="code" class="java">import android.content.Context; import android.graphics.*; import android.text.TextUtils; import and

android textview 设置单行最大宽度和ellipsize省略号时整体变短的问题

在 android 的textview中 同时设置 android:maxWidth="155dp"android:lines="1"android:ellipsize="end" 在部分手机上运行时,当textview的长度超过155dp时,会发现最后显示出来的长度并没有达到155dp,甚至还差的很宽,如图 解决方法: 把 android:lines="1" 替换为 android:singleLine="true

android TextView 设置字体大小

package com.example.yanlei.yl4; import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.Spannable;import android.text.style.AbsoluteSizeSpan;import android.text.style.BackgroundColorS

Android TextView设置个别字体样式

TextView进一步深化: Textview 可以对其文字进行格式化. 通过查询资料,了解到格式化文字的方式主要分为两大类: 第一类:HTML标签格式化文字 代码比较简单,如下: import android.app.Activity; import android.os.Bundle; import android.text.Html; import android.widget.TextView; public class AndroidFronColorTest extends Acti

android TextView 设置部分文字背景色和文字颜色

通过SpannableStringBuilder来实现,它就像html里边的<span>元素改变指定文字的文字颜色或背景色 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Str

Android textview 设置不同的字体大小和颜色

在实际应用中,需要将一个字符串已不同的颜色,字体显示出来.当然完全可以通过不同textview拼接出来.也可以通过一个textview来展示. 步骤如下: 1.定义不同style . 不妨如下定义2个style <style name="style0"> <item name="android:textSize">19dip</item> <item name="android:textColor">

android TextView设置删除线,超链接,颜色和字体等说介绍

要给 TextView 加上特殊效果,方式主要有几种: 第一种,自动应用效果,使用 android:autolink 属性,如: Java代码   <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text1" android:layout_width="match_parent" android:layout_heig