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
You should create SimpleImageLoader in onCreate() of Activity or some where else
DiskLruBasedCache.ImageCacheParams cacheParams = new DiskLruBasedCache.ImageCacheParams(mContext, "CacheDirectory");
cacheParams.setMemCacheSizePercent(0.5f);
SimpleImageLoader mImageFetcher = new SimpleImageLoader(mContext, null, cacheParams);
If you are still facing OOM exception then you can use NetworkImageView.
Detailed example is present in github sample
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) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.list_row_item_products, null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.title = (TextView) rowView.findViewById(R.id.tvName);
viewHolder.image = (ImageView) rowView.findViewById(R.id.list_image);
rowView.setTag(viewHolder);
}
else {
ViewHolder holder = (ViewHolder) rowView.getTag();
if(holder.image.getDrawable() instanceof BitmapDrawable)
((BitmapDrawable) holder.image.getDrawable).getBitmap().recycle();
}
Here is the solution for this Problem with changes in Adapter class. In which i placed
DiskLruBasedCache.ImageCacheParams cacheParams = new DiskLruBasedCache.ImageCacheParams(mContext, "CacheDirectory");
cacheParams.setMemCacheSizePercent(0.5f);
SimpleImageLoader mImageFetcher = new SimpleImageLoader(mContext, null, cacheParams);
Inside if (rowView == null) which prevents to use above code repetitively in Adabpter Class.