Skip to content Skip to sidebar Skip to footer

Volley Plus Outofmemoryerror In List Adapter

I am using Volley Plus library. I am showing ListView with image and text view with no error, but when i scroll up and down lots of time in this listview it get OutOfMemoryError an

Solution 1:

The problem is that you keep loading images but the memory they fill isn't released afterwards. You could simply if you are recycling a row test if the image is a bitmap and then call recycle() on it. You might use something like this:

if (rowView == null) {
        LayoutInflaterinflater= (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        rowView = inflater.inflate(R.layout.list_row_item_products, null);

        ViewHolderviewHolder=newViewHolder();
        viewHolder.title = (TextView) rowView.findViewById(R.id.tvName);
        viewHolder.image = (ImageView) rowView.findViewById(R.id.list_image);

        rowView.setTag(viewHolder);
}
else {
    ViewHolderholder= (ViewHolder) rowView.getTag();
    if(holder.image.getDrawable() instanceof BitmapDrawable)
        ((BitmapDrawable) holder.image.getDrawable).getBitmap().recycle();
}

Solution 2:

You should create SimpleImageLoader in onCreate() of Activity or some where else

    DiskLruBasedCache.ImageCacheParamscacheParams=newDiskLruBasedCache.ImageCacheParams(mContext, "CacheDirectory");
    cacheParams.setMemCacheSizePercent(0.5f);
    SimpleImageLoadermImageFetcher=newSimpleImageLoader(mContext, null, cacheParams);

If you are still facing OOM exception then you can use NetworkImageView.

Detailed example is present in github sample

Solution 3:

Here is the solution for this Problem with changes in Adapter class. In which i placed

    DiskLruBasedCache.ImageCacheParamscacheParams=newDiskLruBasedCache.ImageCacheParams(mContext, "CacheDirectory");
    cacheParams.setMemCacheSizePercent(0.5f);
    SimpleImageLoadermImageFetcher=newSimpleImageLoader(mContext, null, cacheParams);

Inside if (rowView == null) which prevents to use above code repetitively in Adabpter Class.

Post a Comment for "Volley Plus Outofmemoryerror In List Adapter"