2012-01-17 74 views
2

我試圖在畫布上用觸摸點中心畫一個矩形。我正在使用以下代碼:在畫布上用中心在觸摸點繪製一個矩形

canvas.drawRect((point.x + 15), (point.y + 15),(point.x + 15),(point.y + 15), paint); 

但它不起作用。

但是當我使用,

canvas.drawRect(point.x , point.y ,(point.x + 30),(point.y + 30), paint); 

神奇的是,它的工作原理。但唯一的缺點是它不是以觸摸座標爲中心。矩形的左上角與觸摸座標重合。 我哪裏錯了?

回答

7

你的x,y對都

(point.x + 15), (point.y + 15) 

你想第一對是

(point.x - 15), (point.y - 15) 
+0

Oops..That是愚蠢的我!謝謝! – 2012-01-17 17:55:48

4

你的第一個例子是繪製1個像素點,這就是爲什麼它看起來就像是沒沒有工作。

要在接觸點繪製一個正方形30PX,試試這個

canvas.drawRect(point.x - 15 , point.y - 15 , point.x + 15, point.y + 15, paint); 
+0

對不起,但我不得不接受另一個答案作爲正確的答案,那個人更快。 :) – 2012-01-17 18:04:06

0

試試這個:

int rectWidth = 15; 
int rectHeight = 15; 

canvas.drawRect((point.x - rectWidth/2), (point.y - rectHeight/2),(point.x + rectWidth/2),(point.y + rectHeight/2), paint);