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插入表情或者图片后字体变大或变小
113 1
|
6月前
|
小程序 前端开发
解决小程序 scroll-view 里面的image有间距、小程序里面的图片之间有空隙的问题。
解决小程序 scroll-view 里面的image有间距、小程序里面的图片之间有空隙的问题。
|
XML Android开发 数据格式
Android 指定TextView某个 字/段 颜色,可批量设置
Android 指定TextView某个 字/段 颜色,可批量设置
Android 指定TextView某个 字/段 颜色,可批量设置
SwiftUI—使用ScrollView在限定的区域显示超长的内容
SwiftUI—使用ScrollView在限定的区域显示超长的内容
426 0
SwiftUI—使用ScrollView在限定的区域显示超长的内容
|
Android开发
如何去掉listview滑动时的阴影
如何去掉listview滑动时的阴影
如何去掉listview滑动时的阴影
|
Android开发
Android隐藏Listview和RecyclerView 滑动边界的阴影,去除滚动条加分隔线等
Android隐藏Listview和RecyclerView 滑动边界的阴影,去除滚动条加分隔线等
205 0
|
Android开发
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
314 0
|
Android开发
TextView未绘制情况下获取其宽高
/** * 注:StaticLayout是android中处理文字换行的一个类,TextView源码中也是通过这个类实现换行的,使用这个类可以 * 在不进行TextView绘制的前提下得到TextView的宽高,这里我们只需要获取到高度即可,这个高度当然也可以通过post * 在run中获取,但是这样做会有一个问题,界面是先绘制显示然后再计算高度根据我们的逻辑来收缩TextView的高度,在列表中 * 会出现闪烁的问题。
2613 0
|
Android开发
Android代码设置TextView的顶部图及设置图与字体之间距离
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 现在很多的设计底部都是几个Tab标签,每个标签都是上边是图片,下边是文字。
2500 0