目標:純粹Canvas上的Android> = 1.6。如何垂直排列文本?
假設我想寫一個函數,它將繪製一個(寬度,高度)大的紅色矩形,然後在裏面繪製一個黑色的文本。我希望文字在矩形的中心可視化。所以讓我們嘗試:
void drawHelloRectangle(Canvas c, int topLeftX,
int topLeftY, int width, int height) {
Paint mPaint = new Paint();
// height of 'Hello World'; height*0.7 looks good
int fontHeight = (int)(height*0.7);
mPaint.setColor(COLOR_RED);
mPaint.setStyle(Style.FILL);
c.drawRect(topLeftX, topLeftY, topLeftX+width, topLeftY+height, mPaint);
mPaint.setTextSize(fontHeight);
mPaint.setColor(COLOR_BLACK);
mPaint.setTextAlign(Align.CENTER);
c.drawText("Hello World", topLeftX+width/2, ????, mPaint);
}
現在,我不知道要放什麼的drawText的論證通過????
標記,即我不知道該怎麼垂直對齊文本。
喜歡的東西
???? = topLeftY + height/2 + fontHeight/2 - fontHeight/8;
似乎工作或多或少好,但必須有更好的方法。
每次您在問題標題中放入* Android *時,小貓都會死亡,請不要這樣做。謝謝。 – 2011-02-05 20:20:57