私のような他の質問で解決策を見つけようとしましたが、何も見つかりませんでした。Android:ビットマップサイズがVMの予算を超えています。キャンバスに画像を読み込む
私はキャンバスに画像の束を読み込んでいます。しかし、java.lang.OutOfMemoryError:ビットマップサイズがVMの予算を超えています。私はテストのために実際の電話を使用しています(Nexus One)。アプリがクラッシュします。それは私のサムスンの振動で正常に動作します。
ここに私のコードだ:
CustomDrawableView.java
package com.images.testimage;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.view.View;
public class CustomDrawableView extends View {
private Drawable canada;
private Drawable usa;
private Drawable mexico;
public CustomDrawableView(Context context) {
super(context);
Resources res = context.getResources();
canada = res.getDrawable(R.drawable.canada);
canada.setBounds(0, 0, 0 + canada.getMinimumWidth(), 0 + canada.getMinimumHeight());
usa = res.getDrawable(R.drawable.usa);
usa.setBounds(0,0,usa.getMinimumWidth(),
usa.getMinimumHeight());
mexico = res.getDrawable(R.drawable.mexico);
mexico.setBounds(0,0,mexico.getMinimumWidth(),
mexico.getMinimumHeight());
}
protected void onDraw(Canvas canvas) {
canada.draw(canvas);
usa.draw(canvas);
mexico.draw(canvas);
}
}
カナダ、米国とメキシコは、PNG画像です。それぞれは5kbです。
ここではメインのコードです:
TestImageActivity.java
package com.images.testimage;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
public class TestImagesActivity extends Activity {
/** Called when the activity is first created. */
CustomDrawableView mCustomDrawableView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCustomDrawableView = new CustomDrawableView(this);
setContentView(mCustomDrawableView);
setRequestedOrientation(0);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
}
は、私が唯一の米国とカナダのような2枚の画像をロードするとき、それは私のNexus Oneの上で動作します。 3ではない。私はそれらのような20以上の国のように読み込むと仮定します。助けてください?
ここではサンプルcanada.pngの画像は、可能な解決策の
-1 ...この質問は1週間に5回尋ねられます... – Selvin
-1 selvin.uと同意しないでください。 –
二重合意。これは簡単に検索できます:http://stackoverflow.com/search?q=Android+bitmap+size+exceeds+VM+budgetこれは約5000の結果を返します – hooked82