2013-02-14 7 views
0

У меня около 53 изображений для отображения в gridview из drwable. Но я делал это, делая это. Поэтому я начал использовать универсальный загрузчик изображений для кэширования этих изображений на диск и вытащить его оттуда ..! Но я все еще получаю ум. Вот моя конфигурацияOutOfMemoryError при использовании универсального загрузчика изображений в gridview

imageLoader =ImageLoader.getInstance(); 
       if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
        cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"icons"); 
       else 
        cacheDir=mContext.getCacheDir(); 
       if(!cacheDir.exists()) 
        cacheDir.mkdirs(); 
       config= new ImageLoaderConfiguration.Builder(mContext) 
       .memoryCache(new WeakMemoryCache()) 
       .denyCacheImageMultipleSizesInMemory() 
       .threadPoolSize(2) 
       .offOutOfMemoryHandling() 
      .discCache(new UnlimitedDiscCache(cacheDir)) 
       .enableLogging() 
       .build(); 
       imageLoader.init(config); 

options = new DisplayImageOptions.Builder() 
       .cacheOnDisc() 
       .bitmapConfig(Bitmap.Config.RGB_565) 
       .imageScaleType(ImageScaleType.IN_SAMPLE_INT) 
       .build(); 

и это мой GetView() из BaseAdapter

public View getView(int position, View convertView, ViewGroup parent) {  



     if(convertView==null) 
     { 
      ViewHolder holder=new ViewHolder(); 
      inflator = mContext.getLayoutInflater(); 
      convertView = inflator.inflate(R.layout.imagelayout, null); 
      holder.imageView=(ImageView)convertView.findViewById(R.id.imgDet); 
      convertView.setTag(holder); 

     } 
     ViewHolder hold=(ViewHolder)convertView.getTag(); 



     try 
     { 

      imageLoader.displayImage("drawable://" +mThumbIds[position], hold.imageView, options,new ImageLoadingListener() { 

       @Override 
       public void onLoadingStarted(String arg0, View arg1) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onLoadingFailed(String arg0, View arg1, FailReason arg2) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onLoadingCancelled(String arg0, View arg1) { 
        // TODO Auto-generated method stub 

       } 
      }); 

     }catch(OutOfMemoryError oom) 
     { 
      oom.printStackTrace(); 
     } 
     catch(Exception ex) 
     { 
      ex.printStackTrace(); 
     } 


     return convertView; 
    } 

пожалуйста, помогите мне с этим.

+0

Вам действительно нужен UIL для отображения изображений из чертежей? Почему бы вам просто не использовать 'imageView.setImageResource (...)'? – NOSTRA

ответ

0

Всегда учитывайте исходный способ загрузки чертежей.

ImageView.setImageResource(...) вместо использования ImageLoader.

Смежные вопросы