android - Combining CoverFlow and Universal Image Loader -


i'm using fancycoverflow , universalimageloader display custom 3d gallery :d below picture. problem it's not showing images when downloaded unless swipe between gallery pictures , picture hide screen , when appears next time it's showing image in sample of universalimageloader downloaded image showing right after download.

here getview code adapter :

 public view getview(int position, view view, viewgroup parent) {       roundedimageview photo = (roundedimageview) view;     if (photo == null) {         photo = (roundedimageview) inflater.inflate(r.layout.row_gallery_latest_issue_item, parent, false);     }     try {         system.out.println("test good");         imageloaderhelper.configurecacheableimage(mcontext, photo, latestbook.get(position).getimageurl(),                 r.drawable.avatar_issue, null);     } catch (nullpointerexception e) {         photo.setimageresource(r.drawable.avatar_issue);         e.printstacktrace();     }      return createreflectedimages(photo); } 

it's same universalimageloader sample expect have trycatche , createreflectedimage ( make our imageview reflective )

, , 1 more thing imageloaderhelper :

public class imageloaderhelper { public static void configurecacheableimage(context context, imageview imageview         , string imageurl, integer defaultimageresourceid         , imageloadinglistener imageloadinglistener) {     imageloader imageloader = imageloader.getinstance();     displayimageoptions.builder builder = new displayimageoptions.builder();     builder.displayer(             new simplebitmapdisplayer())             .cacheondisc(true)             .cacheinmemory(true)             .resetviewbeforeloading(true)             .imagescaletype(imagescaletype.in_sample_int)             .bitmapconfig(bitmap.config.rgb_565);     if (defaultimageresourceid != null)         builder.showimageonfail(defaultimageresourceid).showimageforemptyuri(defaultimageresourceid).showstubimage(defaultimageresourceid);     if (!imageloader.isinited())         imageloader.init(imageloaderconfiguration.createdefault(context));     imageloader.displayimage(imageurl, imageview, builder.build(), imageloadinglistener); } 

}

enter image description here

update :

after day debugging found clue problem adapter don't know how resolve !

here code of createreflectedimages() :

   public imageview createreflectedimages(roundedimageview image) {      roundeddrawable drawable = (roundeddrawable) image.getdrawable();     bitmap originalimage = drawable.tobitmap();      int width = originalimage.getwidth();     int height = originalimage.getheight();      matrix matrix = new matrix();     matrix.prescale(1, -1);      bitmap reflectionimage = bitmap.createbitmap(originalimage, 0,             height / 2, width, height / 2, matrix, false);      bitmap bitmapwithreflection = bitmap.createbitmap(width,             (height + height / 2), config.argb_8888);      canvas canvas = new canvas(bitmapwithreflection);      canvas.drawbitmap(originalimage, 0, 0, null);      canvas.drawbitmap(reflectionimage, 0, height, null);      paint paint = new paint();     lineargradient shader = new lineargradient(0, height, 0, bitmapwithreflection.getheight()             , 0x70ffffff, 0x00ffffff, tilemode.clamp);      paint.setshader(shader);      paint.setxfermode(new porterduffxfermode(mode.dst_in));      canvas.drawrect(0, height, width, bitmapwithreflection.getheight()             , paint);      roundedimageview imageview = new roundedimageview(mcontext);     imageview.setimagebitmap(bitmapwithreflection);     imageview.setlayoutparams(new imagegallery3d.layoutparams(generalhelper.dp(180), generalhelper.dp(240)));//width , height of image     return imageview; } 

the problem have 2 separate instances of imageview floating around. 1 created in getview, , second created in createreflectedimage. basically, when image finishes downloading, new imageview has replaced , downloaded image loaded 1 no longer visible (or possibly exists). reason why loads correctly second time (after scrolling offscreen) latency lower since being loaded memory not off web or wherever, when roundeddrawable drawable = (roundeddrawable) image.getdrawable(); has image want, rather placeholder!

public view getview(int position, view view, viewgroup parent) {       roundedimageview photo = (roundedimageview) view;     ...         /*          *passing first instance of photo imageloaderhelper          */      imageloaderhelper.configurecacheableimage(mcontext, photo, latestbook.get(position).getimageurl(),                 r.drawable.avatar_issue, null);     ...     //     //returns new instance of roundedimageview imageloader not aware of adapter     //     return createreflectedimages(photo); }  public imageview createreflectedimages(roundedimageview image) {     ...      roundedimageview imageview = new roundedimageview(mcontext);     imageview.setimagebitmap(bitmapwithreflection);     imageview.setlayoutparams(new imagegallery3d.layoutparams(generalhelper.dp(180), generalhelper.dp(240)));//width , height of image      //returning new instance of imageview     return imageview; } 

instead of returning imageview in createreflectedimages, return "image". implement callback pass in imageloaderhelper calls createreflectedimages after image has been loaded apply effect.


Comments

Popular posts from this blog

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

node.js - Using Node without global install -

java - JavaScript + Thymeleaf - select onchange -