나는 색칠 된 모양이 많이 드로잉되어 만들어진 입자 기반 게임을 쓰고 있습니다.안드로이드 드로잉 성능 - canvas.drawRect 대 비트 맵 드로잉
질문 1) 나는 캔버스를 통해 사각형 그리기 다음 페인트 설정에 의해 4 개 사각형을 그리기하고있는 적 유닛의 대부분을
.
비트 맵을 사용하여 그리거나 캔버스 그리기 도구를 사용하여 그리는 것이 더 좋은지 궁금합니다. 내가 끌어 당기고 싶은 적 유닛의 이미지를 쉽게 만들 수 있습니다.
질문 2) 화면에 그릴 수있는 이미지의 경우
, 나는 내가 그들을로드 할 필요가 궁금 해서요? 내가 RGB565 화면에 그릴 수 금식 이미지 형식입니다 읽었습니다
direction1 = BitmapFactory.decodeStream(assetMgr.open("direction1.png"));
:
는 지금은 다음과 같이로드 .PNG 이미지의 톤이있다. Microsoft 그림판에는 저장 옵션이 있지만 대부분의 프로그램은 비트 맵 형식이 아닌 비트 맵으로 만 저장됩니다. 새로운 형식을 사용하기 시작한다면 :
- 새로운 이미지를 만들고 같은 로딩 코드를 사용하십시오.
- 동일한 이미지를 사용하고
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
~ 과 같은 것을 초기로드 형식에서 RGB565 형식으로 변환하십시오. - 새 이미지를 만들고로드 코드를 변경하십시오.
어떤 도움을 주셔서 감사합니다! 매우 감사드립니다.
디자인 과정에서 OpenGL로 변경하기에는 너무 늦었습니다. 그래서 내가 묻는거야. 나는 그것을 발송할 수 있도록 좀 더 많은 성능을 짜낼 필요가있다. –
@ NathanTornquist, 나는 당신이 당신의 이미지를 그리는 데 사용할 캔버스 방법의 양과 이미지의 크기에 크게 의존한다고 생각합니다. DDMS로 가서 "Start method profiling"/ "Stop"을 사용하여 프로파일 링을 사용하십시오. 이렇게하면 CPU의 정확한 %가 모두 차지하는 것을 볼 수 있습니다. – Alehar