2012-11-20 3 views
0

내가 가진 내 ImageAdapter에 오류 ""메모리 부족, 내가, 내가 어떤 날 도울 수 있기를 바랍니다 :) 일부 이미지 뷰를 재사용 솔루션,하지만 작품을 시도의 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; 
} 

I 비슷한 응용 프로그램을 가지고 있지만,이 문제가 아니라는 것을 확실히 알고 싶습니다. 290 개의 다른 이미지가 있습니다. 다른 응용 프로그램에는 하나 밖에 없습니다. convertView == null로 outOfMemory 문제를 해결했습니다.

자세한 정보 : - 이미지가 100kb 이상인 이미지가 20 개 이상인 경우이 중 3 개만> 500k이고 < 900k

0123입니다.

PD : 임은이 튜토리얼의 코드를 사용 : 당신의 도움이 남자와 대한 http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/

감사합니다 죄송합니다 내 영어 안드로이드 프로그램은 훨씬 더 복잡 대부분의보다

답변

0

, 이미지보다 램에 훨씬 더 많은 메모리를 취할 것 그들은 디스크에 있습니다. 당신이 쉽게 할 수있는 한가지, 그리고 몇 가지 다른 팁이 있습니다.

  1. 매니페스트의 애플리케이션 태그에 android:largeHeap="true"을 추가하십시오.
  2. 누출을 찾기 위해 일종의 메모리 프로파일 러를 실행하십시오.
  3. 사용되지 않는 변수를 삭제하십시오.
  4. 일부 변수가 클래스간에 일관되게 사용되는 경우 일부 변수를 정적으로 설정합니다.
  5. 올바른 크기의 이미지를 사용해보십시오.
  6. 또한

, How can I gracefully degrade my performance, given limited memory?

를 살펴
관련 문제