2015-09-21 39 views
3

我想畫一個矩形作爲透明畫布上我給text如下圖: enter image description here根據android中的給定文本無法對齊可繪製的矩形座標?

我使用下面的代碼來繪製矩形透明,但無法理解的座標位置。我嘗試了很多時間,但沒有奏效。

canvas.drawRect(left,top,right,bottom,paint); 

這裏是我的代碼:

Paint paint = new Paint(); 
paint.setAntiAlias(true); 
paint.setColor(Color.WHITE); 
paint.setStyle(Paint.Style.FILL); 
paint.setTextSize(40); 
paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK); 
paint.setAlpha(255); 
rectPaint.setAlpha(100); 
canvas.drawText("$250", 20, 400, paint); 
canvas.drawBitmap(bitmapImage, 490, 55, null); 
canvas.drawRect(0, 100, 300, 400, rectPaint); 

將是座標的其餘部分的價值在什麼方法drawRect對準它給出的textcoordinates。現在我用

canvas.drawRect(0, ? , ? , ?, rectPaint); 
+0

drawRect(float left,float top,float right,float bottom,Paint paint) - 最好使矩形不透明,所以至少你可以在屏幕上看到它,並在位置上播放以更好地理解它 – Tasos

+0

我可以看到我的屏幕上的矩形,但無法將其設置在正確的位置。我已經玩了差不多一個小時:( –

+0

@Tasos你可以看看Eidt-1部分 –

回答

0

你可以使用這個方法Paint.getTextBounds()

getTextBounds(字符串文本,詮釋開始,詮釋年底,矩形邊界)

返回邊界(由主叫方分配),其 封閉所有字符的最小的矩形,與一個隱含的原點( 0,0)。

這會給你你想要的Rect,那麼你需要與你同drawText呼叫提供的座標來抵消這種Rect