最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android獲取文字高度的三種方法

 更新時(shí)間:2021年01月05日 09:50:57   作者:muboluo  
這篇文章主要給大家介紹了Android獲取文字高度的三種方法,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文是對(duì)獲取文字高度整理和總結(jié),參考資料源自 statcoverflow的一個(gè)回答。具體參看下面的參考鏈接

獲取文字高度的三個(gè)方法

  • paint.getTextBounds(String text, int start, int end, Rect bounds)
  • paint.getFontMetrics()
  • StaticLayout

1 paint.getTextBounds(String text, int start, int end, Rect bounds)

參數(shù)解釋

  • text : 被測(cè)量的文字
  • start: 被測(cè)量文字的起始位置
  • end: 被測(cè)量文字的終止位置,最大為文字的長(zhǎng)度
  • rounds: 被測(cè)量文字

功能解釋

如果我們想要獲取一段string的精確高度,我們可以通過 paint.getTextBounds()方法來(lái)實(shí)現(xiàn)。

精確高度是指什么?舉例來(lái)說(shuō),下面的 Happy new year 這幾個(gè)文字中,三個(gè)單詞的高度是不同的。

高度等于最上面一個(gè)像素減去最下面一個(gè)像素的高度。

所以,三者的高度是不同的。如何獲取這三個(gè)高度呢?就是通過 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 就是我們目標(biāo)文字的最終高度。

但是需要注意的是,上面的到的Happy, new, year 這三個(gè)單詞的高度是不同的。

如果我們想將上面三個(gè)單詞處理成同一個(gè)高度,該怎么辦呢?

2 paint.getFontMetrics()

功能解釋

paint.getFontMetrics() 幫助我們獲取一段文字中字體的高度,注意這里說(shuō)的是字體。使用這個(gè)方法,獲取一段文字的高度都是相同的。

這里,fm中幾個(gè)屬性需要注意一下 我們先來(lái)看下面這張圖。注意圖中的 line1 line2 line3

其中 line 1 表示 Ascent;line2 表示baseline;line3 表示 Decent。 下面的截圖中是我在一個(gè)demo中獲取的一段文字的高度。

Ascent的值 和 Decent的值都是相對(duì)于baseLine而言的。從baseLine出發(fā),向上為負(fù),向下為正。

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表示行高。注意這兩者的區(qū)別。fm.leading 表示行間距。

總結(jié)

到此這篇關(guān)于Android獲取文字高度的三種方法的文章就介紹到這了,更多相關(guān)Android獲取文字高度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

參考資料:stackoverflow.com/questions/3

相關(guān)文章

最新評(píng)論

胶州市| 临城县| 德阳市| 原平市| 江北区| 壤塘县| 靖边县| 孝感市| 沭阳县| 三原县| 堆龙德庆县| 明水县| 福建省| 灵丘县| 莎车县| 邵阳县| 南雄市| 肇东市| 凭祥市| 绵阳市| 易门县| 来安县| 伊宁县| 寻乌县| 扎鲁特旗| 鹤岗市| 康马县| 佳木斯市| 南丰县| 长汀县| 鸡东县| 图片| 奉新县| 平度市| 辽中县| 资兴市| 博湖县| 永兴县| 宁安市| 蒲城县| 贵溪市|