总结Android TextView中设置文字字号(sp)与文字的宽度高度(dp)之间的对应关系
-
最重要的是公式:
Heigth = (size + 0.00000007) / 0.7535 Width = size(宽度和字体字号是相同的,12sp字体,单字宽为12dp)
用数据说话
- 图中字体大小单位为sp, 宽高均为dp
TextView字号从12sp到44sp依次测量出字体的高度和宽度
Paint.FontMetrics m = paint.getFontMetrics();
float height = m.bottom - m.top;//得到字体的高度: px,通过与设备像素密度相除得到相应的dp值(注: 使用paint.getTextBounds()方法测出的结果只属于字体的显示范围,不是其实际显示所占有的空间)
float width = paint.measureText(content, 0, 1);//宽度通过measureText测出单个字符的宽度
通过excel整理得x,y散点图
得到公式:
Heigth = (size + 0.00000007) / 0.7535
Width = size(宽度和字体字号是相同的,12sp字体,单字宽为12dp)
将计算结果与实际结果求差
- 误差保持在0.001-0.003dp之间(基本可以忽略不计)
网友评论