I am using Android-Universal-Image-Loader library to load a remote pictures to ImageView in my GridView cells.
Here the the imageLoader configurations:
new ImageLoaderConfiguration.Builder(Config.context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCacheSize(20 * 1024 * 1024) // 20 Mb
.memoryCache(new LruMemoryCache(20 * 1024 * 1024))
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.enableLogging() // Not necessary in common
.build();
and Display Options:
new DisplayImageOptions.Builder()
.showStubImage(R.drawable.blank)
.showImageForEmptyUri(R.drawable.no_image)
.build();
The problems: Once activity with the gridview starts all works properly and images appears in the cells, then I scroll grid down (I have about 20 items in the grid) and other images load properly. But once I scroll top the images which already loaded start loading again.
After a few scrolls up and down grid saves all images and they don't disappear anymore.
Did someone meet any similar problems or you know what I did wrong. Thanks for help.
ADDED: Here is the getView method in my adapter:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder;
if ( view == null ) {
view = Config.context.getLayoutInflater().inflate(R.layout.featured, null);
holder = new ViewHolder();
holder.titleText = (TextView) view.findViewById(R.id.featured_title);
holder.priceText = (TextView) view.findViewById(R.id.featured_price);
holder.image = (ImageView) view.findViewById(R.id.thumbnail_image);
view.setTag(holder);
}
else {
holder = (ViewHolder) view.getTag();
}
HashMap<String, String> listing = listings.get(position);
/* set text values */
holder.titleText.setText(listing.get("title"));
holder.priceText.setText(listing.get("price"));
/* load image to list (AsyncTask) */
Utils.imageLoaderFeatured.displayImage(listing.get("photo"), holder.image, Utils.imageLoaderOptionsFeatured);
return view;
}
PS. Let me know if you want to see other code (grid adapter maybe) to help me with this issue.
John
.cacheInMemory(true)
and.cacheOnDisc(true)
instead. Do you see your problem in UIL sample app? – Westward