2014-12-20 3 views
0

에서 현재 캔버스를 교체 나는 된 onDraw 함수에서 나는 새로운 canvasBitMap를 작성하여 현재 캔버스를 변경하려고 서피스 뷰 SurfaceView를 얻었다.된 onDraw

Log.d("Debug", "Canvas: " + canvas); 
Log.d("Debug", "Temp Canvas: " + Temp.getCanvas()); 

인쇄물의 결과이다 :

Canvas: [email protected] 
Temp Canvas: [email protected] 

케 getCanvas 캔버스와 동일 stion은 간단합니다, 왜 그들은 동일하지 않습니까?

br

답변

1

새 것을 만들었 기 때문에. 들어오는 캔버스는 화면을 가리키는 캔버스 (또는 화면에 그려지는 그래픽 카드의 버퍼)를 가리 킵니다. 작성한 비트 맵은 작성한 비트 맵 함수에서 작성한 새로운 메모리 내부 비트 맵으로 그려지고 화면이 아닌 해당 비트 맵으로 그려집니다.

+0

그는 하나의 캔버스 만 만들었습니다 ... 그는 새로운 "온도"를 만들었지 만 그게 무엇인지 압니다. –

+0

그는 그 캔버스를 임시 직원에게 전달했습니다. 저는 우리가 생성자를 통해 캔버스를 매개 변수로 사용하는 객체에서 getCanvas를 안전하게 추측 할 수 있다고 생각합니다. 그 밖의 캔버스를 반환하지 않는 객체는 없습니다. 그는 또한 SurfaceView의 onDraw에 있다고 말합니다. 이것이 다른 캔버스가 openGL 녹음 캔버스 인 이유입니다. –

+0

그럼 난 정말 혼란스러워. 그는 "canvas"와 "temp.getCanvas()"를 출력하고 있습니다.이 템플리트는 생성자에서 전달되고 get 메소드를 통해 검색되었다고 말했기 때문에 사용자의 설명에 따라 동일한 인스턴스 여야합니다. ? –