TextView未绘制情况下获取其宽高

简介: /** * 注:StaticLayout是android中处理文字换行的一个类,TextView源码中也是通过这个类实现换行的,使用这个类可以 * 在不进行TextView绘制的前提下得到TextView的宽高,这里我们只需要获取到高度即可,这个高度当然也可以通过post * 在run中获取,但是这样做会有一个问题,界面是先绘制显示然后再计算高度根据我们的逻辑来收缩TextView的高度,在列表中 * 会出现闪烁的问题。

    /**
     * 注:StaticLayout是android中处理文字换行的一个类,TextView源码中也是通过这个类实现换行的,使用这个类可以
     * 在不进行TextView绘制的前提下得到TextView的宽高,这里我们只需要获取到高度即可,这个高度当然也可以通过post
     * 在run中获取,但是这样做会有一个问题,界面是先绘制显示然后再计算高度根据我们的逻辑来收缩TextView的高度,在列表中
     * 会出现闪烁的问题。使用这个类一定要注意构造方法中参数的传递,保证参数和布局中textView设置的一致,否则会有误差
     * 这个问题和获取三行高度的要求是一样的
     *
     * @param textView
     * @param content
     * @param width
     * @return
     */
    public static int getTotalLineHeight(TextView textView, String content, int width) {
        if (TextUtils.isEmpty(content)) return 0;

        TextPaint textPaint = textView.getPaint();
        /**
         * width:表示textView的宽度,和布局保持一致,达到这个宽度,StaticLayout会对文字进行换行处理
         * 1 :是行高
         * UIUtil.dip2Px(CONTENT_LINE_SPACING)  :是行间距
         */
        StaticLayout staticLayout = new StaticLayout(content, textPaint, width, Layout.Alignment.ALIGN_NORMAL,
                1, UIUtil.dip2Px(CONTENT_LINE_SPACING), true);
        return staticLayout.getHeight();
    }
相关文章
|
29天前
|
Android开发
ImageView设置tint ,修改图标颜色
ImageView设置tint ,修改图标颜色
11 0
|
8月前
|
前端开发 Android开发
Android 中使用Canvas绘制文字和矩形,将结果呈现在Bitmap上
Android 中使用Canvas绘制文字和矩形,将结果呈现在Bitmap上
141 0
|
XML Android开发 数据格式
Android自定义Dialog以控制其位置和宽高
Android自定义Dialog以控制其位置和宽高
406 0
|
前端开发 Android开发
Android 自定义垂直,旋转,圆形进度提示 自定义Seekbar
SeekBar是用来调节参数值的,系统默认的一般都不太适合我们,需要我们自定义, 里面也有一个RxJava背压的具体应用 废话不多说,看图   package com.
2309 0
|
Android开发
android:elevation属性,控制View底部渐变阴影
android:elevation属性,控制View底部渐变阴影 android:elevation这一属性,可以控制View底部渐变阴影,给一个View在其底部增加一定的灰度渐变阴影效果,如图: 上图是一个简单的TextView,TextView底部阴影渐变。
2588 0
|
Android开发
Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性
本文转载自[Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性]并做了排版的修改(http://www.
1110 0
|
XML Android开发 数据格式
Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2)
Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2) 附录文章1以xml布局文件方式实现了一个view在横竖屏切换时候的大小尺寸缩放,实现这种需求,也可以使用自定义View的onMeasure方法实现。
2194 0
|
Android开发
Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现
 Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现 LayerDrawable实现的结果和附录文章1,2,3中的layer-list一致。
1098 0