Animiertes Ladebild im Pikasso

Ich habe den folgenden Code, um ein Bild in Picasso zu laden, mit einem Zeichen für den Platzhalter anzuzeigen, während das Bild heruntergeladen wird. Was ich will aber ist eine animierte Spinning Fortschritt Bar Stil Spinner, die herum und herum animiert, während das Bild geladen wird, wie ich in den meisten professionellen Apps zu sehen. Picasso scheint das nicht zu unterstützen, nur statisches Bild zeichnet sich aus. Gibt es einen Weg, um es mit Picasso zu arbeiten oder muss ich etwas anderes machen?

Picasso.with(context).load(url) .placeholder(R.drawable.loading) .error(R.drawable.image_download_error) .into(view); 

  • Benutzerdefinierte Einzelauswahl ListView
  • Rendering Probleme in Android Studio v 1.1 / 1.2
  • Android; Fragmente überlappen beim Umschalten von Tabs
  • Native Facebook Login Erfahrung per Browser
  • Wie entpacken Sie Dateien programmgesteuert in Android?
  • Drehen Sie Marker und verschieben Sie Animation auf Karte wie Uber Android
  • Wie messen Sie Höhe, Breite und Distanz des Objekts mit der Kamera?
  • Wie man Daten mit Android Volley verteilen kann
  • Was ist die SortedList <T> mit RecyclerView.Adapter?
  • Zeichnen eines quadratischen Layouts innerhalb eines Kreises
  • ExpandableListView in Fragment Issue
  • Referenztischüberlauf (max = 512) JNI
  • 5 Solutions collect form web for “Animiertes Ladebild im Pikasso”

    Wie kann ich mit dem Picasso-Platzhalter ein Ladevorlauf animieren?

    Ich löste dies leicht mit einem animierten-rotate xml-Objekt.

    Schritte:

    Progress_image.png

    Progress_image.png

    /res/drawable/progress_animation.xml

     <?xml version="1.0" encoding="utf-8"?> <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/progress_image" android:pivotX="50%" android:pivotY="50%"/> 

    Picasso Laden:

     Picasso.with( context ) .load( your_path ) .error( R.drawable.ic_error ) .placeholder( R.drawable.progress_animation ) .into( image_view ); 

    Ich hoffe das hilft!

    Ich habe den Fortschrittsdialog implementiert, bis das Bild heruntergeladen und es ist sehr einfach. Nehmen Sie Ihre ImageView in relatives Layout und stellen Sie den Fortschrittslader auf die gleiche Bildansicht. Wenden Sie den untenstehenden Code an und behandeln Sie die Sichtbarkeit des Fortschrittsdialogs nur.

     holder.loader.setVisibility(View.VISIBLE); holder.imageView.setVisibility(View.VISIBLE); final ProgressBar progressView = holder.loader; Picasso.with(context) .load(image_url) .transform(new RoundedTransformation(15, 0)) .fit() .into(holder.imageView, new Callback() { @Override public void onSuccess() { progressView.setVisibility(View.GONE); } @Override public void onError() { // TODO Auto-generated method stub } }); } 

    Genießen. 🙂

    Picasso unterstützt leider keine animierten Platzhalter.

    Eine Möglichkeit, die Sie hier umgehen können, ist, Ihre ImageView in einem FrameLayout mit dem animierten zeichen zu platzieren. Auf diese Weise, wenn Picasso das Bild lädt, wird es über die Oberseite des animierten Platzhalters laden, was dem Benutzer die beabsichtigte Wirkung gibt.

    Alternativ können Sie das Bild in ein Ziel laden. Dann hättest du standardmäßig die Fortschrittsanzeige, und wenn die onBitmapLoaded-Methode aufgerufen wird, kannst du sie ausblenden und das Bild anzeigen. Hier sehen Sie eine grundlegende Umsetzung

    Ich habe es in folgender Weise gearbeitet:

    1. Erstellt eine ziehbare (irgendwo im Internet gefunden) und legte es in die res / drawable:

       <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360"> <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="7.0"> <gradient android:angle="0" android:centerColor="#007DD6" android:endColor="#007DD6" android:startColor="#007DD6" android:type="sweep" android:useLevel="false" /> </shape> 

    2. In meinem Artikel für die GridView hinzugefügt ProgressBar Element:

       <ProgressBar android:id="@+id/movie_item_spinner" android:layout_width="@dimen/poster_width" android:layout_height="@dimen/poster_height" android:progressDrawable="@drawable/circular_progress_bar"/> 
    3. In Adapter hinzugefügt Zielobjekt mit folgenden Parametern, wobei Poster und Spinner Referenzen auf ImageView und ProgressBar sind:

      // Ziel, ProgressBar auf ImageView zu zeigen / zu verbergen

       final Target target = new Target() { @Override public void onPrepareLoad(Drawable drawable) { poster.setBackgroundResource(R.color.white); spinner.setVisibility(View.VISIBLE); } @Override public void onBitmapLoaded(Bitmap photo, Picasso.LoadedFrom from) { poster.setBackgroundDrawable(new BitmapDrawable(photo)); spinner.setVisibility(View.GONE); } @Override public void onBitmapFailed(Drawable drawable) { poster.setBackgroundResource(R.color.white); } }; 
    4. Ergebnisse werden so sein wie beim Laden – Kreis dreht sich (sorry für diesen Screenshot, aber Bilder erscheinen zu schnell): ScreenShot

    Für alle, die versuchen, DBragion's Technik zu verwenden: Stellen Sie sicher, dass Sie die neueste Version von Picasso haben oder sonst wird es nicht drehen. Mine hat nicht funktioniert, bis ich Version 2.5.2 benutzt habe.

     compile 'com.squareup.picasso:picasso:2.5.2' 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.