2012-07-12 2 views
0

캔버스에 경로를 그리는 방법과 실행 취소/다시 실행하는 방법을 알고 있습니다. 하지만 이제는 MS Paint에서와 같이 드래그하는 방법에 따라 동적으로 크기를 조정하는 모양 (선, 원, 직사각형)을 그립니다.내 손가락을 추적하는 모양 그리기

"drawLine"을 사용하는 경우 줄이 영구적으로 지워지고 새 손가락 위치로 다시 그려지는 방법이 없습니다. 서클과 동일하게 손가락을 드래그하여 서클의 너비가 계속 변경되기를 원합니다. 따라서 이전 버전은 지워 져야합니다 (비트 맵의 ​​다른 모든 경로는 그대로 유지해야합니다).

이 문제에 대해 많은 조사를 해왔지만 어떻게 수행했는지 모릅니다. 어쩌면 내가 잘못된 키워드를 사용하고 있을지 모르겠다. 어떤 포인터? 1

전체보기를 무효화 API 레벨 :

답변

0

관리해야합니다. 나는 오프 스크린 드로잉이 작동하는 방식을 오해했다. 아이디어는 원하는 모양 (예 : "터치 업")이있는 경우에만 비트 맵에 작성하는 것입니다. 그때까지 Draw에있는 "canvas"객체를 사용하여 도형을 그립니다.

0

당신은 손가락을 움직일 때마다, 기본 뷰의 무효화() 함수를 호출, 그것은 전체 배경을 때문에

공공 무효의 무효화() 를 삭제 트리거 . 뷰가 표시되면 미래의 어느 시점에서 onDraw (android.graphics.Canvas)가 호출됩니다. 이것은 UI 스레드에서 호출해야합니다. 비 UI 스레드에서 호출하려면 postInvalidate()를 호출하십시오.

그런 다음 손가락의 새로운 위치에 따라 모양을 다시 그립니다.

+0

다른 것들을 그리는 동안 나는 이미 invalidate를 호출합니다. "모양"모드에서 Canvas.drawRect를 호출하면 변경 사항이 영구적으로 적용됩니다. –

관련 문제