Android学習――画像を引用してメモリがjavaにあふれた.lang.OutOfMemoryError


今日この問題に遭遇したのは、入力ストリームからBitmapFactoryを呼び出すことです.decodeFile(name)はbitmap新聞の間違いを得た.1回目の呼び出しでも問題なく、2回目の呼び出しでメモリオーバーフローの問題が報告されます.また、携帯電話の新聞もあれば、携帯電話の新聞もありません.長い間研究してやっと解決した.まず,画像がシステム仮想マシンに割り当てられる最大の制限を超えるメモリを消費する理由を解析した.携帯電話によって最大値が異なる可能性があります.その後、解決策を見つけたのは主にBitmapFactoryを設定することだった.Options.
 
 BitmapFactory.Options option = new BitmapFactory.Options();
        option.inSampleSize = 4;
        try {
            Bitmap bmp = BitmapFactory.decodeFile(Path,option);
            holder.icon.setImageBitmap(bmp);
        } catch (OutOfMemoryError err) 
       {}

  • ある人はbitmapOptionsを加えると言った.inJustDecodeBounds = true;しかし、私が追加して得たbitmapはnullです.取り除けばいいです.以上の方法で問題を解決しました.bitmapを使わないときに回収したほうがいいです.
    if (bitmap != null && !bitmap.isRecycled())
                       bitmap.recycle();