遊戲中需要用到繪製玩家暱稱,繪製在乙個固定大小的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,使文字垂...