2013-10-16 52 views
0

如何在表面視圖中水平居中居中字符串?在表面視圖中居中文本(字符串)

我不想

c.drawText(""+score, c.getWidth()/2, y); 

因爲這將顯示文本開始在屏幕的中央。

我想是這樣

c.drawText(""+score, c.getWidth()/2-score.length()/2*fontSize, y); 

有沒有辦法解決這個問題的方程式?如果不是,還有其他方法可以將文本置於表面視圖中嗎?

順便說一句我正在使用自定義字體,我不知道這是否會改變任何東西。如果您需要了解有關字體的任何額外信息,請發表評論。

回答

3

您不必手動計算。你只需要在你的Paint對象來指定一些額外的參數:

Paint paint = new Paint(); 
paint.setColor(textColor); 
paint.setTextSize(28); 
paint.setTypeface(typeface); 
paint.setTextAlign(Align.CENTER); 

的關鍵是,你需要指定Align.CENTER,這樣你可以叫:

canvas.drawText("CENTERED TEXT", canvas.getWidth()/2, posY, paint);