Kombinieren von CoverFlow und Universal Image Loader

8

Ich verwende fancyCoverFlow und universalImageLoader um meine benutzerdefinierte 3D-Galerie anzuzeigen: D so etwas wie unteres Bild. Mein Problem ist, dass Bilder beim Herunterladen nicht angezeigt werden, es sei denn, ich wische zwischen den Galeriebildern und das Bild wird vom Bildschirm ausgeblendet und wenn das nächste Mal angezeigt wird, aber in Sample von UniversalImageLoader wird das heruntergeladene Bild direkt nach dem Download angezeigt.

Hier ist mein getView-Code für Adapter:

%Vor%

es ist genau das gleiche wie UniversalImageLoader Beispiel erwarte ich ein TryCatch und CreateReflectedImage (die unser ImageView Reflective machen)

, und noch eine Sache, die mein ImageLoaderHelper ist:

%Vor%

}

UPDATE:

Nach einem Tag Debugging fand ich den a Hinweis Das Problem ist mit meinem Adapter, aber ich weiß nicht, wie man es löst!

Hier ist der Code von CreateReflectedImages ():

%Vor%     
Amir 30.05.2015, 15:19
quelle

1 Antwort

1

Das Problem besteht darin, dass Sie zwei separate Instanzen von imageview haben, die herumschweben. 1 wird in getView erstellt, und die zweite wird in createReflectedImage erstellt. Wenn das Bild fertig heruntergeladen ist, hat ein neuer Bildanblick es bereits ersetzt und das heruntergeladene Bild wird in ein Bild geladen, das nicht mehr sichtbar ist (oder möglicherweise sogar existiert). Der Grund, warum es beim zweiten Mal korrekt geladen wird (nach dem Scrollen außerhalb des Bildschirms), ist, dass die Latenz viel niedriger ist, da es aus dem Speicher geladen wird, nicht aus dem Web oder wo auch immer, also wenn RoundedDrawable drawable = (RoundedDrawable) image.getDrawable (); Es hat tatsächlich das Bild, das Sie wollen, und nicht nur den Platzhalter!

%Vor%

Geben Sie "image" anstelle von imageView in createReflectedImages zurück. Implementieren Sie dann einen Callback, den Sie an ImageLoaderHelper übergeben, der createReflectedImages aufruft, nachdem das Bild erfolgreich geladen wurde, um Ihren Effekt anzuwenden.

    
charliebeckwith 11.06.2015, 03:36
quelle