2016-06-07 12 views
0

둘 이상의 캔버스를 사용하여 SurfaceView로 그릴 수 있습니까? 예를SurfaceView에 여러 캔버스 그리기

Canvas canvas1 = holder.lockCanvas; 
canvas1.drawPath(path1, paint1); 
holder.unlockCanvasAndPost(canvas1); 

Canvas canvas2 = holder.lockCanvas; 
canvas2.drawPath(path2, paint2); 
holder.unlockCanvasAndPost(canvas2); 

이 코드에 대한

잘못된 그림을 보여줍니다.

+0

'Canvas'es의 목록은 무엇입니까? 그들은 무엇인가? 그들은 SurfaceHolder # lockCanvas()에 의해 반환되지 않습니까? – pskink

+0

아니요 파일에서로드 할 수 있지만 캔버스에서 pathes를 가져 와서 SurfaceHolder.lockCanvas()를 사용할 수는 있지만 그 방법은 모른다. –

+0

파일에서로드 하시겠습니까? 파일에서'Canvas'es를로드합니까? 어째서? – pskink

답변

1

Android Canvas는 그리기 명령을 내리는 방법 일뿐입니다. SurfaceHolder는 lock()unlockCanvasAndPost() 호출 사이에서만 유효한 캔버스를 전달합니다.

SurfaceHolder를 잠글 때마다 다른 캔버스가 생성됩니다. SurfaceView는 이중 버퍼 또는 삼중 버퍼이므로, 일련의 버퍼를 통해 순환됩니다.

"Canvas"의 Android 정의를 다른 상황에서 사용하는 것과 혼동하지 않도록하십시오.

+0

이제는 의미가 있습니다. 각기 다른 자물쇠가있는 선과 원을 그렸습니다. 두 통화가 끝난 후에 만 ​​함께 그리기 시작했습니다. 나는이 두 가지 사이를 항상 끌어 당기는 전략 만 필요합니다. – SMUsamaShah