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

node.js - Using Node without global install -

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

java - Null response to php query in android, even though php works properly -