TextView文字自动变小

简介: 开发中经常会遇到让TextView字体大小自适应的需求,ios端可以自适应大小,Android不行,我们需要单独处理。当然了,针对的肯定是单行的TextView,如果是多行的,还需要加入行数这个变量。

开发中经常会遇到让TextView字体大小自适应的需求,ios端可以自适应大小,Android不行,我们需要单独处理。

当然了,针对的肯定是单行的TextView,如果是多行的,还需要加入行数这个变量。

实现思路是根据tv.getPaint().measureText()方法获取当前的宽度,跟TextView控件的长度进行对比,如果TextView的宽度大于期望宽度,就减小字体大小,直到TextView的宽度等于或小于期望宽度。代码实现如下:

/**
 * 根据给定的宽度,自动缩小TextView的字体,step为1px
 *
 * @param tv
 * @param maxWidth
 * @param value
 */
public static void adaptTextSize(TextView tv, float maxWidth, String value) {
    if (tv == null) {
        return;
    }
    if (maxWidth <= 0) {
        return;
    }
    if (TextUtils.isEmpty(value)) {
        return;
    }

    float tvWidth = tv.getPaint().measureText(value);

    // 如果超出边界,调整字体
    int count = 0;
    while (tvWidth > maxWidth) {
        //防止无限循环导致anr等问题
        if (count > 100) {
            break;
        }
        count++;
        tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv.getTextSize() - 1);
        tvWidth = tv.getPaint().measureText(value);
    }

    tv.setText(value);
}
相关文章
|
iOS开发
iOS TextView插入表情或者图片后字体变大或变小
iOS TextView插入表情或者图片后字体变大或变小
121 1
|
8月前
|
小程序 前端开发
解决小程序 scroll-view 里面的image有间距、小程序里面的图片之间有空隙的问题。
解决小程序 scroll-view 里面的image有间距、小程序里面的图片之间有空隙的问题。
如何通过反射来解决AlertDialog标题由于字数过多显示不全的问题
转载前请标明出处:http://blog.csdn.net/sahadev_ 先上一下示例图: 这是默认状态下:这是通过反射后修改的结果: 在解决这个问题之前首先需要了解一下AlertDialog的基本构造,所以先从源码看起: 想要知道为什么显示不全,首先入口处应该是这里: builder.
1461 0
SwiftUI—使用ScrollView在限定的区域显示超长的内容
SwiftUI—使用ScrollView在限定的区域显示超长的内容
441 0
SwiftUI—使用ScrollView在限定的区域显示超长的内容
减小TabLayout高度而不影响每个tab展示的几种方法
在Support Design库中有一个新的组件TabLayout,配合TabItem实现tab页面的形式。 但是图标和文字组合的tab的默认情况下,TabLayout中的tab太高,占据太多布局。 但是如果直接将TabLayout高度改小,很容易出现图标显示不全的情况,因为图标和字体及两者的间距没有跟着改变。 这时可以从几个方面处理:
332 0
|
Android开发
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
328 0
|
Android开发
TextView未绘制情况下获取其宽高
/** * 注:StaticLayout是android中处理文字换行的一个类,TextView源码中也是通过这个类实现换行的,使用这个类可以 * 在不进行TextView绘制的前提下得到TextView的宽高,这里我们只需要获取到高度即可,这个高度当然也可以通过post * 在run中获取,但是这样做会有一个问题,界面是先绘制显示然后再计算高度根据我们的逻辑来收缩TextView的高度,在列表中 * 会出现闪烁的问题。
2644 0
|
Android开发
Android 实现圆角布局,变相实现圆角图片效果(不同位置不同弧度)
    小菜最近在处理图片的圆角,不止是四个角全是圆角,还包括单左侧/单右侧/对角线方向的圆角。因为自己太菜只能寻求网上的大神,发现一个自定义圆角布局,这样可以变相的解决我的需求,还可以实现更多的圆角效果,不仅是图片,还包括其他布局。
2283 0