2013-07-02 87 views
0

我試過在我的代碼中的回收方法,但它似乎沒有正常工作。我有一個viewpager在我的應用程序的開始,它已經有5個圖像在裏面,我用位圖回收以回收它位圖回收();顯示錯誤和圖像不顯示

 Bitmap tempImage = ImageSampleManager.decodeSampledBitmapFromResource(getResources(),tutorial_images[position], 240, 240); 
     view.setImageBitmap(tempImage); 
     ((ViewPager) collection).addView(view, 0); 
     tempImage.recycle(); 
     return view; 
    } 
+3

'它不工作properly' - 可能是最無用的語句編程。 *確切*你得到什麼錯誤,你什麼時候得到它,請從logcat發佈堆棧跟蹤。 – Simon

+1

No no n。您在使用時無法回收Bitmap。回收可以從內存中釋放位圖 – Blackbelt

+0

也許你太早調用tempImage.recycle():圖像仍然被視圖使用,所以試圖回收它將會失敗。儘可能在onDestroy()中調用它。此外,將很高興向我們展示一些日誌。 –

回答

0

您可以避免創建一個stackoverflow主題並通過閱讀文檔等待答案。
Bitmap.recycle()用於通知系統您不再使用該位圖並且可以從內存中釋放該位圖。
因此,如果您先回收它,那麼您無法顯示它。

-1

你必須檢查:

Bitmap tempImage; 
    if (tempImage != null && !tempImage .isRecycled()) { 
       tempImage = null; 
    } 
    tempImage = ImageSampleManager.decodeSampledBitmapFromResource(getResources(),tutorial_images[position], 240, 240); 
    view.setImageBitmap(tempImage); 
    ((ViewPager) collection).addView(view, 0); 
    // tempImage.recycle(); 
    return view; 
+0

所以我應該真的做 – user007