Android文字繪製Staticlayout

2021-08-21 08:58:49 字數 1238 閱讀 8887

public staticlayout(charsequence source, textpaint paint, int width, alignment align, float spacingmult, float spacingadd, boolean includepad) 

public staticlayout(charsequence source, int bufstart, int bufend, textpaint paint, int outerwidth, alignment align, float spacingmult, float spacingadd, boolean includepad)

public staticlayout(charsequence source, int bufstart, int bufend, textpaint paint, int outerwidth, alignment align, float spacingmult, float spacingadd, boolean includepad, truncateat ellipsize, int ellipsizedwidth)

source:文字內容

paint:畫筆

width:文字內容長度超過該數值則換行

align:對齊方式

spacingmult:行距,表示字型高度的倍數,預設是1,小於1則是減少行距,大於則是增加行距

spacingadd:行距,表示行間距增加的距離(與spacingmult配合使用)

includepad:是否留白

其中paint可以設定字型型別,settypeface(),不同字型型別有著不同的繪製規則。

重要的屬性有:

top:是指的是最高字元到baseline的值,即ascent的最大值,為負數

ascent:是baseline之上至字元最高處的距離,為負數

bottom:是指最低字元到baseline的值,即descent的最大值,為正數

descent:是baseline之下至字元最低處的距離,為正數

Android 文字居中繪製

遊戲中需要用到繪製玩家暱稱,繪製在乙個固定大小的rect中,要求文字左右和上下都居中,左右居中繪製比較容易,設定paint.settextalign align.center 並且設定需要繪製的字元的x座標是rect.width 2即可,上下居中要稍微麻煩一些,先要使用fontmetrics物件計算...

Android文字測量與繪製Tips

1 在用canvas繪製文字時需要測量文字的繪製範圍,比如字型的高度 寬度,常用的方法是使用paint.gettextbound string text,int start,int end,rect rect 然後通過傳入的rect返回長寬,不過這個測量的寬度有些誤差,導致計算位置座標是偏移。pai...

Android文字的測量和繪製

翻譯與 chris banes的部落格 如果你想手動在android canvas上畫些什麼東西,你最好從繪製文字開始。文字繪製之前,你需要知道測量文字的繪製位置,計算文字x y軸的位置。paint mtextpaint new paint mtextpaint.settextalign paint...