网络中好多资料介绍获取字体高度的方法如下:
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);
}
分享到:
相关推荐
CListCtrl 设置行高 ...设置 CListCtrl 的行高需要继承 CListCtrl,重载 DrawItem() 和 MeasureItem() 函数,并添加 SetRowHeight() 函数。通过这种方式,可以根据需要调整 CListCtrl 的行高,以适应不同的显示需求。
在前端开发中,有时我们需要为用户提供将数据导出为Excel的功能。这通常涉及到与后端交互,...在实际项目中,确保按照需求正确设置字体、列宽、行高、对齐方式和合并单元格,可以极大地提升导出文件的可读性和美观度。
在VC++编程环境中,...以上就是关于在VC++中使用CListCtrl控件设置行高的详细步骤和方法。通过这些技术,你可以创建更符合用户需求的界面,提供更好的视觉体验。在实际开发中,应结合项目需求灵活运用这些技巧。
在这个特定的情况下,我们关注的是一个被定制的 `ListCtrl`,它具有额外的功能,即允许用户设置每一行的高度和颜色,并能够获取指定行的颜色信息。 要实现这样的功能,开发者通常需要深入理解MFC(Microsoft ...
ckeditor中用来设置字体行高的插件,解压后lineheight文件夹放到ckeditor--->plugins目录下即可,如果不明白可以参考http://blog.csdn.net/zcyhappy1314/article/details/8651053第二的部分:ckeditor的配置
一个自制的ListCtrl的MFC扩展库.编译MFCClassDll工程后,将MyListCtrl.h和MyListCtrl.lib拷贝到目标工程文件夹,在工程中包含MyListCtrl.h...调用SetHeight()可以设置ListCtrl的行高.程序须与MFCClassDll.dll一块执行.
3. **调整item高度**:如果你希望在运行时改变行高,可以在需要时调用`SetItemHeight`函数,传入新的行高值和item的索引。 **示例代码片段** ```cpp void CMyListView::OnDrawItem(int nIDCtl, CDC* pDC, ...
描述中的“可设置行高”意味着`xlsx.full.js`库允许我们自定义每一行的高度,这样可以根据数据内容的长度和用户的视觉需求来调整。在实际应用中,如果某行的数据较多,可能需要增加行高以避免内容重叠;反之,如果...
在 CSS 布局中,设置字体文字大小值大于行高值是非常重要的,因为它可以避免文字之间的重叠和不完整显示的情况。下面我们将详细解释为什么需要设置字体文字大小值大于行高值,并提供解决方案。 一、问题描述 在 ...
本文将详细介绍如何在Excel中精确地设置列宽和行高的方法,包括使用界面操作与VBA编程两种方式。 #### 一、理解行高和列宽的基本概念 1. **行高**:指的是单元格的高度,单位是磅(pt)。默认情况下,Excel中行的...
本教程将深入探讨如何通过代码自定义`cell`,并动态设置其行高,以适应不同内容的显示需求。这个过程适用于创建类似于微博、说说或微信消息的界面,这些应用通常包含头像、会员图标、配图、昵称、时间、来源以及正文...
通过以上设置,FastReport将能够根据内容自动换行,并根据实际内容的高度自适应行高,确保了报表的显示效果和信息的清晰度。在实际应用中,可以根据报表的具体需求和页面布局灵活选择合适的方法,以达到最佳的视觉...
在实际开发中,开发者可能需要根据项目需求进一步扩展这个插件,比如增加动态计算行高的功能,或者与其他样式设置(如字体大小)联动。这就需要对CKEditor的插件开发机制有深入的了解,包括插件的生命周期、命令处理...
6. 使用 CSS3 的伪元素技巧:创建两个相对定位的伪元素,分别位于元素的顶部和底部,设置与元素相同高度的负外边距,可以实现居中效果。 每种方法都有其适用场景和优缺点,开发者应根据项目需求选择合适的方法。在...
// 获取子视图并设置高度 TextView textView = (TextView) convertView.findViewById(R.id.textView); textView.setHeight(YOUR_DESIRED_HEIGHT); // 其他操作... return convertView; } ``` 2. **设置...
你可以使用`GetItemRect`来获取项的矩形区域,接着用`SetBkColor`和`SetTextColor`设置背景色和字体颜色。最后,调用`DrawText`或`DrawTextEx`来绘制文本。例如: ```cpp void CMyListCtrl::OnDrawItem(int ...
在Excel表格中,设置行高和列宽是优化表格布局和提高数据可读性的重要步骤。以下是关于如何在Excel中设置行高和列宽的详细说明: 1. **自动调整行高和列宽**: - 在Excel2007中,首先选择需要调整的行或列。 - ...
1. 下载:首先,你需要从CKEditor的官方网站或者第三方资源库获取行高插件的压缩包,根据提供的文件名"lineheight",这个文件可能包含了插件的源代码和其他相关资源。 2. 解压:将下载的压缩包解压到CKEditor的...
UITextView 和UILable 它本身是没有控制行高的。很多人说用Uiwebview,但我觉得那不好用,要用html布局麻烦,占内存。也有人说drawatpoint,但 发现画中文的时候也很占内存,我就投机取巧一下吧
2. `LVM_SETITEMHEIGHT`:这是一个控制`ListView`消息的常量,用于设置或获取指定索引项的高度。它的参数通常包括`hWndListView`(`ListView`控件的句柄)、`iItem`(要设置高度的项的索引)和`nHeight`(新的高度值...