重複の可能性:
Android:画像をビットマップオブジェクトにロードする際のメモリ不足の問題
OutOfMemoryError:ビットマップサイズがVMバジェットを超えています:-Android
これについてはすでに多くのトピックがあることを私は知っていますが、私が試したものは何でもうまくいかないようです。
ビットマップのリサイクル、nullにするなど、いくつかのonDestroyトリックを試しました。コードが他の状況と異なるかどうかわかりませんか?そのように思えます...私はTouchImageView拡張機能を使用しているので、ピンチズームを使用できるので、もっと複雑になるのではないでしょうか。
とにかくここに私のコードがあります。誰かがこれを修正する方法を指摘してもらえますか(ビットマップをダウンスケーリングせずに)。
public class PageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page);
Intent parent = getIntent();
int pagenumber = parent.getIntExtra("pagenumber", 1);
int resID = getResources().getIdentifier("page"+pagenumber , "drawable", getPackageName());
TouchImageView img = new TouchImageView(this);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resID);
img.setImageBitmap(bitmap);
img.setMaxZoom(4f);
LinearLayout rootview = (LinearLayout) findViewById(R.id.RootView);
rootview.addView(img);
}
}