Android根据所设置的textSize获取字体高度和设置行高
16lz
2021-01-26
From:http://qiaoweishu.iteye.com/blog/780526
网络中好多资料介绍获取字体高度的方法如下:
- publicintgetFontHeight(floatfontSize)
- {
- Paintpaint=newPaint();
- paint.setTextSize(fontSize);
- FontMetricsfm=paint.getFontMetrics();
- return(int)Math.ceil(fm.descent-fm.top)+2;
- }
个人更倾向于以下方式获取字体实际高度:
Java代码
- Math.ceil(fm.descent-fm.ascent)
通过实际的截图对文字高度的确定,后者更准确一些。
有了字体高度信息,就可以添加行与行之间的空隙,调整行高。
个人实现方式如下:
Java代码
- paint.setTextSize(fFontWidth);
- FontMetricsfm=paint.getFontMetrics();
- fFontHeight=(float)Math.ceil(fm.descent-fm.ascent);
- if(fFontHeight>fLineHeight)
- {
- fMulValue=fLineHeight/fFontHeight;
- fAddValue=-1;
- }
- else
- {
- fMulValue=1;
- fAddValue=fLineHeight-fFontHeight;
- }
- textViewLeft.setTextSize(fFontWidth);
- textViewLeft.setLineSpacing(fAddValue,fMulValue);
实践验证这种方式对多种分辨率的屏幕的适应性较强。
以上是个人在实际的功能实现过程中的总结,水平较浅,若看官有不同的看法或者见解,望不惜赐教!
更多相关文章
- 【Android】利用Strings资源文件来格式化字符串
- Android(安卓)Studio 定制快速生成Jni 头文件工具 Ndk教程
- android 开发 - 结束所有activity
- Android输入框实时模糊搜索效果的示例代码
- android 带图片的文本框
- Android实现图片左右滑动效果
- android开机启动流程简单分析
- Android安装应用后点击,打开.(Open)带来的问题及解决方式
- Android设置全局字体大小,实现小中大字体功能