2011-07-15 101 views
0

Possible Duplicate:
Android: Strange out of memory issue while loading an image to a Bitmap objectjava.lang.OutOfMemoryError:位圖大小超過VM預算

我收到以下錯誤,當我的AsyncTask上ImageView的加載位圖:

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

有什麼幫助嗎?

+1

我的猜測是,你需要更多的物理內存,更大的分配給你的JVM或更小的圖像。 – duffymo

+2

@nirav:請看「相關」鏈接(在此頁面右側) – Mat

回答

2

這可能是有幫助的觀看今年的谷歌的內存管理會話I/O: Memory management for Android Apps這裏,帕特里克Dubroy解釋某些情況下,這可能會導致內存泄漏(通過靜態特別是保持長壽的參考應用程序的上下文成員)。他還談到垃圾收集器。

0

我有同樣的問題。 我解決了重新採樣位圖以降低分辨率的問題,然後使用imageView.clearAnimation();之前在imageView上加載新的位圖。 如果這對你也有幫助,請投我。 此致敬禮。 注:下面的示例中,數據包含攝像機圖像選擇器和ImageView的是我們的ImageView新的圖像數據。

Bitmap photo=null; 
    imageView.clearAnimation();  
    Uri photoUri = data.getData(); 
    InputStream imageStream = null; 
    try { 
    imageStream = getContentResolver().openInputStream(photoUri); 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } 

    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inPurgeable = true; 
    options.inSampleSize=2; 
    Rect outPadding= new Rect(-1, -1, -1, -1); 
    photo = BitmapFactory.decodeStream(imageStream, outPadding, options); 
    imageView.setImageBitmap(photo); 
相關問題