저는 학교에서 간단한 안드로이드 게임을하고 있으며, 메모리가 부족하고 충돌이 발생하기 전에 게임이 약간 실행됩니다. 나는 이것이 게임에서 사용하는 이미지의 수 (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에서 한 일은 메모리 과부하 프로가 도움이되기를 바랬다. 흠. 이 일을 어떻게 하죠? 나는 일반적으로 안드로이드 초보자이므로 솔루션은 간단할수록 좋습니다.
이미지 사용 메모리는 파일 크기와 아무 관련이 없습니다. 이미지의 스펙과 관련이 있습니다. widthxheight – hasan83
시작 화면을 사용해서는 안됩니다. 빠른 솔루션으로 메인 이미지를 복사하여 모든 드로어 블 폴더에 붙여 넣으십시오. 모든 폴더에서 동일한 이미지. 놀랍게도 당신은 다른 것을 볼 수 있습니다. – hasan83
하지만, 그렇게하지 마십시오. 각 화면 해상도 카테고리 (xx, x, l, m)에 대해 주 이미지의 이미지 4 개를 제공해야합니다. 그게 당신이 안드로이드 응용 프로그램을 개발하는 방법. – hasan83