Android Text文字大小与文字宽高之间的方程式

总结Android TextView中设置文字字号(sp)与文字的宽度高度(dp)之间的对应关系

  • 最重要的是公式:

    Heigth = (size + 0.00000007) / 0.7535
    Width = size(宽度和字体字号是相同的,12sp字体,单字宽为12dp)
    

用数据说话

  • 图中字体大小单位为sp, 宽高均为dp
Android Text文字大小与文字宽高之间的方程式_第1张图片
各个数据之间的关系

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之间(基本可以忽略不计)

你可能感兴趣的:(Android Text文字大小与文字宽高之间的方程式)