Android 文字居中繪製

2021-06-18 06:55:19 字數 776 閱讀 9354

遊戲中需要用到繪製玩家暱稱,繪製在乙個固定大小的rect中,要求文字左右和上下都居中,

左右居中繪製比較容易,設定paint.settextalign(align.center);並且設定需要繪製的字元的x座標是rect.width/2即可,上下居中要稍微麻煩一些,先要使用fontmetrics物件計算出文字的高度,之後計算出繪製文字的baseline,這個baseline其實就是:

rect.height - (rect.height - fontheight) / 2 - fontmetrics.bottom;

這樣就ok了,下面貼**:

paint paint = new paint();

paint.setcolor(color.yellow);  

paint.settextsize(20);  

paint.settextalign(align.center);  

fontmetrics fontmetrics = paint.getfontmetrics();  

//font height

float fontheight = fontmetrics.bottom - fontmetrics.top;  

//font baseline

float basey = rect.height - (rect.height - fontheight) / 2 - fontmetrics.bottom;

canvas.drawtext("需要繪製的文字", rect.width / 2, basey, paint);

Android文字居中

在寬width高height的畫布上畫一字串,使字串水平豎直居中 水平居中很簡單,paint.settextalign align.center 然後drawtext的x座標設定為width 2即可,豎直居中稍顯麻煩,可以使用fontmetrics物件計算文字高度,然後計算baseline,使文字垂...

Android文字居中

在寬width高height的畫布上畫一字串,使字串水平豎直居中 水平居中很簡單,paint.settextalign align.center 然後drawtext的x座標設定為width 2即可,豎直居中稍顯麻煩,可以使用fontmetrics物件計算文字高度,然後計算baseline,使文字垂...

Android文字居中

在寬width高height的畫布上畫一字串,使字串水平豎直居中 水平居中很簡單,paint.settextalign align.center 然後drawtext的x座標設定為width 2即可,豎直居中稍顯麻煩,可以使用fontmetrics物件計算文字高度,然後計算baseline,使文字垂...