要瞭解TextView對文本的繪製,那麼就需要瞭解Paint.FontMetircs。 官方對該類的解釋是:Class that describes the various metrics for a font at a given text size., 意思是說,這玩意兒是繪製文本內容時存儲該文 ...
要瞭解TextView對文本的繪製,那麼就需要瞭解Paint.FontMetircs。
官方對該類的解釋是:Class that describes the various metrics for a font at a given text size., 意思是說,這玩意兒是繪製文本內容時存儲該文本內容位置信息的一個類。
這個類裡面存儲的欄位有哪些?有下麵五個欄位:
而這五個欄位除了leading,其餘的都是根據BaseLine來確定,也就是基線。
1、何為BaseLine
2、接下來說說裡面欄位的具體含義,請看下圖:
根據上圖可知:
-
ascent
文字內容的頂部到基線的距離。即 ascent=文字內容頂部Y坐標 - 基線Y坐標。由於android中坐標系是 右下為正,所以得到的ascent實際是一個負數。 -
descent
文字內容的底部到基線的距離。即 descent=文字內容底部Y坐標 - 基線Y坐標。 -
基線
在圖中,基線的坐標用Y表示。實際上,基線的Y坐標=文字內容中間線Y坐標+1/2 (文字內容高度) -
top
對應圖中 文字所在行的top 坐標 -
bottom
對應圖中 文字所在行的bottom 坐標
需要註意:如果設置了行間距,且文本內容產生了換行,那麼這個bottom 也會將行間距包裹。所以, 圖中藍色的文字內容中間線的Y軸坐標並不一定等於 (bottom+top)/2
參考鏈接:https://www.cnblogs.com/huolongluo/p/7057973.html