2014-11-23 7 views
1

저는 학교에서 간단한 안드로이드 게임을하고 있으며, 메모리가 부족하고 충돌이 발생하기 전에 게임이 약간 실행됩니다. 나는 이것이 게임에서 사용하는 이미지의 수 (10+ 항목/문자/버튼을위한 작고 10-20KB 크기의 파일과 스플래시 화면의 매우 큰 450KB PNG 파일과 관련이 있다고 생각합니다.) 배경).배경 활동의 비트 맵 이미지?

내 작은 항목 PNG 파일을 모두 디코딩 BitmapFactory를 사용하고

, 나는 또한 나의 주요 GameView의 배경을 설정할 수 있었다 (예제 코드의 최소한 포함) :

public class GameView extends SurfaceView implements SurfaceHolder.Callback { 

private Bitmap background, invincibleBitmap; 

//Sets the background bitmap to an image scaled to the same size as the user's screen 
background = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.background), getWidth(), getHeight(), false); 
invincibleBitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.invincible_item), 60, 60, false); 
앞서 언급 한 시작 화면에 대한

하지만, 정말 같은 이미지 설정 작업의 레이아웃 XML 파일을 사용하고했습니다

android:background="@drawable/main" 

내가 같은 방법으로 main.png 확장 할 수 있도록하려면를 내가 Activity In View에서 한 일은 메모리 과부하 프로가 도움이되기를 바랬다. 흠. 이 일을 어떻게 하죠? 나는 일반적으로 안드로이드 초보자이므로 솔루션은 간단할수록 좋습니다.

+0

이미지 사용 메모리는 파일 크기와 아무 관련이 없습니다. 이미지의 스펙과 관련이 있습니다. widthxheight – hasan83

+0

시작 화면을 사용해서는 안됩니다. 빠른 솔루션으로 메인 이미지를 복사하여 모든 드로어 블 폴더에 붙여 넣으십시오. 모든 폴더에서 동일한 이미지. 놀랍게도 당신은 다른 것을 볼 수 있습니다. – hasan83

+0

하지만, 그렇게하지 마십시오. 각 화면 해상도 카테고리 (xx, x, l, m)에 대해 주 이미지의 이미지 4 개를 제공해야합니다. 그게 당신이 안드로이드 응용 프로그램을 개발하는 방법. – hasan83

답변

0

이미지 파일 크기는 메모리 사용에 영향을주지 않습니다. 너비 x 높이 x 1 바이트 이미지 사양에 따라 다릅니다.

화면 해상도에 따라 이미지의 크기를 조정하여 코드에서 스플래시 화면 이미지를 설정하면 안됩니다. 그릴 수있는 폴더가 있습니다. 화면 해상도 범주 (l, m, x, xx, xxx) 각각에 대해 서로 다른 사양의 다른 이미지를 제공하십시오. 빠른 솔루션으로

복사, 모든 당김 폴더에 같은 이미지를 붙여 넣습니다. 놀랍게도 당신은 차이를 느낄 것입니다.

+0

죄송합니다. 이전에 답변 해 주셨으므로 댓글을 달았 기 때문에 이전에 수락 할 수 없었습니다. 도와 주셔서 다시 한 번 감사드립니다! – jycdartmniac