0

I have around 53 images to show in gridview from drwable. But i was getting oom while doing that. So i started using universal image loader to cache these images on to disc and pull it from there..! But i am still getting oom. Here is my configuration

 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();

and this is my getview() of 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;
    }

please help me with this.

Manoj
  • 2,799
  • 5
  • 30
  • 49
  • Do you really need UIL to display images from drawables? Why don't you just use `imageView.setImageResource(...)`? – nostra13 Feb 14 '13 at 21:16

1 Answers1

0

Always Consider the native way to load drawables first.

ImageView.setImageResource(...) instead of using of ImageLoader.

Isaiah
  • 432
  • 2
  • 6