2012-01-22 3 views
1

2 차원 맵 디스플레이에 대한 좌표가있는 2 차원 배열이 있습니다. 캔버스에 그려집니다. 매번이 캔버스에서 무언가를 바꾸고 싶을 때마다 매우 무겁다. 그래서 내가 처음으로 결과를 저장할 수 있다면 2 차원 배열을 통해 For-looping하는 것이 가능하다고 생각했다. 그것, 그리고 복원 때마다 내가 다른 뭔가를 누른 다음 2 차원지도를 변경 저장합니다.많은 비트 맵을 하나의 비트 맵에 저장할 수 있습니까? (2d)

canvas.save() 및 canvas.restore()는 동일한 시간에만 호출 할 수 있으므로 첫 번째 출력을 저장할 수 없으며 123 회 복원 할 수 있습니다.

캔버스를 다른 방법으로 저장하는 것이 가능한지, 아니면 처음 결과를 bipmap에 저장하여 생각할 수 있습니까?

캔버스에 이미 그려져있는 모든 것을 "조정"/ "편집"할 수 없다는 것을 알고 있습니다. 지도가 변경되지 않습니다.

답변

1

좋아, 그래서 알아 냈어. 캔버스를 사용하여 많은 비트 맵 이미지를 포함하는 내 배경을 그릴 수 있습니다.

먼저 원하는 int height와 int width로 빈 비트 맵을 만듭니다.이 비트 맵은 모든 타일을 (작은 이미지)로 그릴 비트 맵입니다.

비트 맵 background = Bitmap.createBitmap (width, heigth, Bitmap.Config.ARGB_4444);

(Bitmap.Config.ARGB_4444 구문에 대해 잘 모르겠 음, 툴팁 사용) 새 캔버스 (비트 맵)로 캔버스를 만들면 캔버스가 비트 맵에 쓰여집니다.

캔버스 캔버스 새로운 캔버스 (배경);

이제 원하는대로 캔버스를 작성할 수 있습니다. 모두 나중에 사용할 수 있도록 비트 맵에 저장됩니다.

+0

메모리를 많이 소비하지 않겠습니까? – Arjun

관련 문제