2012-11-20 41 views
0

我具有「內存不足」在我ImageAdapter錯誤,我嘗試了一些解決方案重用ImageView的,而不是作品,我希望任何能幫助我:)getView - 的OutOfMemoryError

@Override 
public View getView(int position, View convertView, ViewGroup parent) {   
    ImageView imageView; 
    if (convertView == null) { 
     imageView = new ImageView(mContext);//Creamos la imagen sólo si no existe 
    } else { 
     imageView = (ImageView) convertView;//Sino reusamos el objeto 
    } 

    //Todas con el mismo ancho 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70)); 

    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 

我有一些類似的應用程序,但沒有這個問題,當然我有290個不同的圖像,而另一個應用程序我只有一個:),我認爲convertView == null修復了outOfMemory問題

更多信息: - 只有20張圖片有100kb以上的圖片,其中只有3張圖片大於500k和< 900k

PD:IM使用此教程代碼:http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/

感謝您的幫助球員和抱歉,我的英語

回答

0

Android的程序比大多數複雜得多,圖像似乎採取了在拉姆比更多的內存他們在磁盤上做。不能承受,有一件事你可以輕鬆做到,還有一些其他技巧。

  1. android:largeHeap="true"添加到清單中的應用程序標記中。
  2. 運行某種內存分析器查找泄漏。
  3. 刪除所有未使用的變量。
  4. 使一些變量爲靜態,如果它們在類中一致使用。
  5. 嘗試使用正確大小的圖像。

另外,請看How can I gracefully degrade my performance, given limited memory?