Combinazione di CoverFlow e Universal Image Loader

Sto utilizzando fancyCoverFlow e universalImageLoader per visualizzare la mia galleria 3D personalizzata: D qualcosa come sotto image. Il mio problema è che non visualizza le immagini quando viene scaricato a less che non scorri tra le immagini della Galleria e quella image nascosta dalla schermata e quando viene visualizzata la prossima volta che sta visualizzando l'image ma nel campione di UniversalImageLoader l'image scaricata visualizzata subito dopo il download.

Ecco il mio codice getView per l'adattatore:

  • Limite di collapse_key conteggi in android GCM
  • Come posso illuminare lo schermo quando apri un'attività nell'applicazione di immersione in vetro GDK?
  • Come includere correttamente i layout di 10 "e 7"
  • Errore di Android - Apri Failed ENOENT
  • Come faccio a creare una funzionalità simile a JQuery Slider per l'applicazione iPhone / Android?
  • Test di servizio Android
  • 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 is 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); } 

    è esattamente uguale a UniversalImageLoader Esempio aspetto che ho un TryCatche e CreateReflectedImage (che fanno la nostra riflessione ImageView)

    , E un'altra cosa che il mio 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); } 

    }

    immettere qui la descrizione dell'immagine

    AGGIORNARE :

    Dopo un giorno di debugging ho trovato il clue Il problema è con il mio adattatore Ma non so come risolverlo!

    Ecco il codice di 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 and height of Image return imageView; } 

  • Come triggersre in modo programmato l'evento di touch in android?
  • Tempo di connessione di Http su Android non funzionante
  • Corrispondenza di funzioni ORB con soglia
  • ActionBar o ActionBarSherlock - Smoothly Hide / Mostra l'ActionBar
  • Come aggiungere un recyclerView all'interno di un altro recyclerView
  • Come posso creare test in Android Studio?
  • One Solution collect form web for “Combinazione di CoverFlow e Universal Image Loader”

    Il problema è che avete 2 istanze separate di immagini che galleggiano intorno. 1 viene creato in getView e il secondo viene creato in createReflectedImage. Quindi, fondamentalmente, quando l'image finisce a scaricare, è stata già sostituita da una nuova image e l'image scaricata viene caricata in uno che non è più visibile (o forse esiste). Il motivo per cui carica correttamente la seconda volta (dopo lo scorrimento offscreen) è che la latenza è molto più bassa poiché viene caricata dalla memory non fuori dal web o ovunque, quindi quando RoundedDrawable drawable = (RoundedDrawable) image.getDrawable (); in realtà ha l'image che vuoi, piuttosto che solo il segnaposto!

     public View getView(int position, View view, ViewGroup parent) { RoundedImageView photo = (RoundedImageView) view; ... /* *Passing first instance of photo into ImageLoaderHelper */ ImageLoaderHelper.configureCacheableImage(mContext, photo, latestBook.get(position).getImageUrl(), R.drawable.avatar_issue, null); ... // //Returns the new instance of RoundedImageView that ImageLoader is not aware of to the 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 and height of Image //Returning a new instance of imageView return imageView; } 

    Invece di restituire imageView in createReflectedImages, restituisce "image". Quindi implementare una richiamata che passate a ImageLoaderHelper che chiama createReflectedImages dopo che l'image è stata caricata per applicare l'effetto.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.