2012-01-17 1 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

Ваш х, у пары оба

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

Вы хотите, чтобы первая пара будет

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

Oops..That было глупо с моей стороны! Спасибо! –

4

Ваш первый пример был рисунок 1 пиксель точка, поэтому казалось, что Бесполезный Не работай.

Чтобы нарисовать 30px квадрат в точке контакта, попробуйте это

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

Извините, но я должен буду принять другой ответ как правильный ответ, этот человек был быстрее. :) –

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); 
Смежные вопросы