2012-01-17 59 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);