网络中好多资料介绍获取字体高度的方法如下:
public int getFontHeight(float fontSize)
{
Paint paint = new Paint();
paint.setTextSize(fontSize);
FontMetrics fm = paint.getFontMetrics();
return (int) Math.ceil(fm.descent - fm.top) + 2;
}
个人更倾向于以下方式获取字体实际高度:
Math.ceil(fm.descent - fm.ascent)
通过实际的截图对文字高度的确定,后者更准确一些。
有了字体高度信息,就可以添加行与行之间的空隙,调整行高。
个人实现方式如下:
paint.setTextSize(fFontWidth);
FontMetrics fm = 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);
实践验证这种方式对多种分辨率的屏幕的适应性较强。
目前使用的是这种方法:
public int getFontWidth(float fontSize) {
Paint paint = new Paint();
paint.setTextSize(fontSize);
Paint.FontMetrics fm = paint.getFontMetrics();
return (int) Math.ceil(fm.descent - fm.ascent);
}
public int getFontHeight(float fontSize) {
Paint paint = new Paint();
paint.setTextSize(fontSize);
Paint.FontMetrics fm = paint.getFontMetrics();
return (int) Math.ceil(fm.bottom - fm.top);
}
分享到:
相关推荐
一个导出excel的demo,包含导出的逻辑代码和依赖包,下载以后请执行 npm install ,然后起服务访问,不能直接以 file://打开哦
可设置行高及每行颜色的ListCtrl,还可以获取指定行的颜色
CListCtrl设置行高 CListCtrl设置行高 CListCtrl 设置行高 行距 高度
一个自制的ListCtrl的MFC扩展库.编译MFCClassDll工程后,将MyListCtrl.h和MyListCtrl.lib拷贝到目标工程文件夹,在工程中包含MyListCtrl.h...调用SetHeight()可以设置ListCtrl的行高.程序须与MFCClassDll.dll一块执行.
可设置行高
VC++ CListCtrl 控件 行高 编辑通过
List Control 可编辑任意item文本,设置行高 使用Owner Draw实现List Control的重绘
ckeditor中用来设置字体行高的插件,解压后lineheight文件夹放到ckeditor--->plugins目录下即可,如果不明白可以参考http://blog.csdn.net/zcyhappy1314/article/details/8651053第二的部分:ckeditor的配置
UITextView 和UILable 它本身是没有控制行高的。很多人说用Uiwebview,但我觉得那不好用,要用html布局麻烦,占内存。也有人说drawatpoint,但 发现画中文的时候也很占内存,我就投机取巧一下吧
给行内块元素设置行高无法垂直居中 https://mp.csdn.net/mdeditor/101070653#
调整了行高的
CSS布局中设置字体文字大小值大于行高值.docx
CListCtrl设置不同行不同颜色,指定单元行和字体颜色,字体大小,行高行宽
excel表格如何设置行高.doc
头像 会员图标 配图 昵称 时间 来源 正文全部包括,并动态设置cell高度 方便 简单 快捷 自动布局
在程序开发中,很多数据是动态获取的,通常UITableView中的行高设置为固定的,当文字量比较多时,程序会自动隐藏多余的数据,本文讲述自定义设置行高
vc 重绘clistbox各项设置不同的行高, if((lpDrawItemStruct->itemAction | ODA_FOCUS) && (lpDrawItemStruct->itemState & ODS_FOCUS)) {…} else if ((lpDrawItemStruct->itemAction | ODA_SELECT) && ...
Extjs 中想改变grid 行高,如果只是简单的设置了height的值是可以实现grid 的行高,但是如果使用了插件:rowexpander ,最出现新的问题。 感兴趣的朋友可以试试的。 此文档可以解决你的烦恼,为了找到资源下载,...
间接的给GridView设置行高,这样就可以把显示的内容全部显示出来,不需要考虑覆盖不覆盖的问题.
本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考。具体方法如下:。 一、前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数...