2016-10-07 10 views
0

私は、イメージを含むレイアウトをカスタマイズしたRecyclerViewを使用する2つのアクティビティを持つAndroid Appを開発しています。 が画像をロードするには、私が持っている:ビットマップを使用するとRAMの使用量が増えます

ImageView imgView = (ImageView)itemView.findViewById(R.id.imgView); 
Bitmap bitmap1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.led); 
imgView.setImageBitmap(bitmap1); 

私はGCは、いくつかの領域を解放することができるだろうビットマップとしてイメージがロードされた場合の活動のonDestroy()メソッドで、しかし、これではないと思いましたアプリがクラッシュしてOOMエラーが発生するまでRAMメモリの使用量が増えます。

何が間違っているのか理解してもらえますか?

+2

ビットマップのリサイクルの呼び出しを追加すると、Androidは自動的にそれらを解放しません –

+0

ここに質問があります。なぜimgView.setImageDrawable()を使用しないのですか? drawableをビットマップにデコードしてImageViewに設定する必要はありません。 –

+0

drawableをビットマップに変換する必要がありますか?アンドロイドシェアは、同じ描画可能なビューに描画可能です。 – Prashant

答えて

2

ImageViewに描画可能なリソースのみを表示するためのビットマップは必要ありません。あなたはそれを直接行うことができます!

imgView.setImageResource(R.drawable.led); 
+0

そして、いつビットマップを使用する必要がありますか?パスを与えるデバイスに保存されたイメージをロードするには? – mireia

+1

@mireiaあなたの最初の質問は描画可能な画像についてです。他の質問を** RecyclerView **にローカルデバイスイメージを表示するように追加してください。 –

関連する問題