2012-01-17 5 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 나를 바보! 고맙습니다! –

4

첫 번째 예는 그것이 didn를 닮은 이유는 1 개 화소의 도트를, 드로잉 된 것으로하려는 일하지 마라.

접촉의 시점에서 30 픽셀 사각형을 그리려면이

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); 
관련 문제