2016-10-07 39 views
0

我正在開發一個Android應用程序,其中有兩個使用RecyclerView的自定義佈局包含圖像的活動。 要加載的圖片,我有:使用位圖增加RAM使用

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

我認爲,在活動的onDestroy()方法,如果圖像加載爲位圖的GC將能夠釋放一些空間,但是這不是發生和RAM內存的使用增加,直到應用程序崩潰的OOM錯誤。

任何人都可以幫我弄清楚有什麼問題嗎?

+2

添加通話以回收位圖,Android不會自動釋放它們 –

+0

下面是一個問題。你爲什麼不使用imgView.setImageDrawable()?您不需要將drawable解碼爲位圖即可將其設置爲ImageView。 –

+0

你需要將drawable轉換成位圖嗎? Android的股票可以繪製到具有相同drawable的視圖。 – Prashant

回答

2

您不需要位圖僅用於向ImageView顯示可繪製資源。你可以直接做到這一點!

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

何時需要使用位圖?加載保存在設備中的圖像給出路徑? – mireia

+1

@mireia你最初的問題是關於可繪製的圖像。將另一個問題添加爲**將本地設備圖像顯示到RecyclerView **。 –