2016-06-02 7 views
4

ich benutze glide um Inhalte zu laden, ich benutze dies um 1 Bild auf einer Seite zu laden und es funktioniert gut, wenn ich meine App schließe und wieder öffne. das problem ist, wenn ich es auf listview verwende, glide immer wieder herunterladen.
Detail Fehler vor:Glide Inhalt beim Scrollen in Listenansicht neu laden

  1. nach Belastung der Inhalt vom Server, die alle Bild normal erscheinen
  2. dann blättere ich es nach unten, auch neue Inhalte normalen
  3. erscheinen, wenn ich zurück blättern, alle Bild ist verschwunden, aber nach 1s erscheint mein Bild wieder, weil glide es zurückladen, genau wie glide, lade es nie vorher.
  4. Wenn ich Hochformat, das erste geladen habe, wird es die Layoutbreite füllen, aber das zweite Mal (Bildlauf zurück Listview) Bild erscheint kleiner nicht voller Breite.

hier ist mein snipped Code

View view = convertView; 
if (null == view) { 
    view = View.inflate(parent.getContext(), R.layout.item, null); 
} 

ImageView ivAvatar = (ImageView) view.findViewById(R.id.iv_avatar); 
ImageView ivPicture = (ImageView) view.findViewById(R.id.iv_picture); 
TextView tvName = .... 
... 
tvName.setText(.....); 

Glide.with(parent.getContext()).load(Api.getUrlImage(contents.get(position).avatar, 50, 0)).into(ivAvatar); 
Glide.with(parent.getContext()).load(Api.getUrlImage(contents.get(position).picture, 400, 0)).into(ivPicture); 

auf Punkt 3, es ist wie ein blinkendes, aber die Bildansicht verlor seine Höhe. Text unter dem Bild nach oben gehen (wie keine Bildansicht dort), dann wieder nach Glide Finish load image
auf Punkt 4, meine Bildschirmauflösung ist 480px und ich lade 400px Bild (Größe von Server) wie auf zweiten Gleitcode gesehen .

meine Frage, wie dieses blinkende Bild zu entfernen?

* i laufen diese auf Low-spec-Gerät und hallo-spec-Gerät (Samsung Tab s) und blinkt passieren in beiden Geräte

Antwort

0

Versuchen Sie es mit dontAnimate() und sehen, ob es das Problem löst?

Wenn das Problem weiterhin besteht, dann ist das, weil Glide die Ressourcen der vorherigen Bilder freigibt, um die nachfolgenden Bilder zu laden.

Wenn Sie viele Bilder in einer Scroll-Liste laden müssen und Sie ein Low-Spec-Gerät unterstützen müssen, ist fresco eine bessere Option. http://frescolib.org/index.html Es verwendet nativen Speicher und hat eine viel bessere Bitmap-Ressourcenverwaltung speziell für Android-Geräte vor 5.0.

+0

ich versuche einfach Frescolib implementieren, arbeiten wie benötigt. nur für Info, ich dachte seinen Fehler auf meinem Code über Bildhöhe, bis diese http://frescolib.org/docs/wrap-content.html gelesen –

Verwandte Themen