在画布上绘制一个矩形,中心位于触摸点

时间:2012-01-17 17:49:59

标签: android android-canvas

我正在尝试在画布上绘制一个矩形,中心位于触摸点。我正在使用以下代码:

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);

令人惊讶的是,它有效。但唯一的危害是它不以触摸坐标为中心。矩形的左上角与触摸坐标重合。 我哪里错了?

3 个答案:

答案 0 :(得分:7)

你的x,y对都是

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

您希望第一对

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

答案 1 :(得分:4)

你的第一个例子是绘制一个1像素点,这就是为什么它看起来不起作用。

要在接触点绘制30px的方格,请尝试此

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

答案 2 :(得分: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);