时间:2021-05-20
本文是对获取文字高度整理和总结,参考资料源自 statcoverflow的一个回答。具体参看下面的参考链接
获取文字高度的三个方法
参数解释
功能解释
如果我们想要获取一段string的精确高度,我们可以通过 paint.getTextBounds()方法来实现。
精确高度是指什么?举例来说,下面的 Happy new year 这几个文字中,三个单词的高度是不同的。
高度等于最上面一个像素减去最下面一个像素的高度。
所以,三者的高度是不同的。如何获取这三个高度呢?就是通过 paint.getTextBounds()方法。
String temp = "Happy"; //被获取的文字 Rect rect = new Rect(); Paint paint = new Paint(); paint.getTextBounds(temp, 0, temp.length(), rect); int height = rect.height();得到的height 就是我们目标文字的最终高度。
但是需要注意的是,上面的到的Happy, new, year 这三个单词的高度是不同的。
如果我们想将上面三个单词处理成同一个高度,该怎么办呢?
功能解释
paint.getFontMetrics() 帮助我们获取一段文字中字体的高度,注意这里说的是字体。使用这个方法,获取一段文字的高度都是相同的。
这里,fm中几个属性需要注意一下 我们先来看下面这张图。注意图中的 line1 line2 line3
其中 line 1 表示 Ascent;line2 表示baseline;line3 表示 Decent。 下面的截图中是我在一个demo中获取的一段文字的高度。
Ascent的值 和 Decent的值都是相对于baseLine而言的。从baseLine出发,向上为负,向下为正。
demo代码如下:
Paint paint = new Paint(); Paint.FontMetrics fm = paint.getFontMetrics(); float height1 = fm.descent - fm.ascent; float height2 = fm.bottom - fm.top + fm.leading;其中 height1 表示文字的高度, height2表示行高。注意这两者的区别。fm.leading 表示行间距。
到此这篇关于Android获取文字高度的三种方法的文章就介绍到这了,更多相关Android获取文字高度内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
参考资料:stackoverflow.com/questions/3…
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android链接服务器获取图片在此提供三种方法,已通过验证,无误。方法一:publicstaticBitmapgetImage(Stringpath){try
Android安全退出应用程序的方法总结正常关闭应用程序:当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:第一种方法:首先获取当
1:获取对象的三种方法 1)document.getElementById(id);通过对象的属性id来获取; 2)element.getElementBy
java实现多线程的三种方法在java中,有三种方法可以实现多线程。第一种方法:继承Thread类,重写run函数。第二种方法:实现Runnable接口,重写r
map的三种遍历方法!集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~复制代码代码如下:/**Tochangethistemplat