TextView文字自适应
来源:互联网 发布:h3c ap端口修改为wan 编辑:程序博客网 时间:2024/06/06 05:31
由于常用,所以提取为静态方法,放入 Tool类中
private static TextPaint textPaint = new TextPaint();
public static void adjustTvTextSize(TextView tv, int maxWidth, String text, int sp) { int avaiWidth = maxWidth - tv.getPaddingLeft() - tv.getPaddingRight() - 10; if (avaiWidth <= 0) { return; }// TextPaint textPaint = new TextPaint(); 增加复用,放入静态变量 float trySize = Tool.dpToPx(sp); textPaint.setTextSize(trySize); while (textPaint.measureText(text) > avaiWidth) { trySize--; textPaint.setTextSize(trySize); } tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, trySize); tv.setText(text); }
代码解释
/**文字自适应控件宽度 * @param tv 控件 * @param maxWidth 控件宽度 * @param text 文字 * @param sp 文字size * * 1、avaiWidth --- 文字所能使用宽度, -10 是为了让文字不紧贴右侧 * 2、textPaint,文字画笔,设置测量所用字体大小,单位 px * 3、textPaint.measureText(Text) --- 测量文字宽度 * 4、循环 * */
附上常抽取方法
/** * 像素转换为密度值 */ public static int pxToDp(float px) { final float scale = res.getDisplayMetrics().density; return (int) (px / scale + 0.5f); }
/** * 密度转换为像素值 */ public static int dpToPx(float dp) { final float scale = res.getDisplayMetrics().density; return (int) (dp * scale + 0.5f); }
1 0
- TextView文字自适应
- iOS TextView自适应文字高度
- android--textview实现文字自适应
- android--textview实现文字伪自适应
- 自适应TextView大小
- IOS TextView 自适应高度
- 自适应width TextView
- TextView文字大小自适应
- 给textView自适应高度
- textview 自适应高度
- 自适应内容的TextView
- Android自适应大小TextView
- iOS textView 高度自适应
- 关于TableViewCell 自适应(文字自适应)
- table 文字自适应
- UILable自适应文字高度
- uibutton文字自适应。
- 文字高度自适应
- MySQL中导入txt文件
- PHP 学校,班级,学生类的三级关系
- MySQL高可用在网易的最佳应用与实践
- MongoDB3.4 shell CRUD操作
- 基于win10安装CentOS双系统
- TextView文字自适应
- 八大排序算法之插入排序
- 一步步带你读懂 CoordinatorLayout 源码
- 01背包
- TOP中只查看某个或某些进程的信息
- Fragment的onAttach()方法详解
- object-c 使用openssl进行 rsa 双向加解密
- MySQL高性能主从复制系列之基础知识部分
- js中的继承