8

Ich verwende Glide 3.7.0 mit RecyclerView. Die Objektansicht blinkt immer beim Aktualisieren (Aufruf notifyDataSetChanged).Warum Glide blinkt das Element ImageView, wenn notifydatasetchanged

Hier ist mein Code:

Glide 
    .with(context) 
    .load(filepath) 
    .diskCacheStrategy(DiskCacheStrategy.NONE) 
    .skipMemoryCache(true) 
    .dontAnimate() 
    .into(imageview); 

Wenn ich keinen Cache verwenden, die ImageView hat eine Null-Bitmap, wenn notifyDataSetChanged Methode aufgerufen wird und Glide nicht beendet die Bitmap geladen.

Wenn ich den Code unten verwenden:

Glide 
    .with(context) 
    .load(filepath) 
    .dontAnimate() 
    .into(imageview); 

Dann wird das Element ImageView nicht mehr blinkt (mit Cache).

Ich möchte die Objektansicht dynamisch aktualisieren, also deaktiviere ich den Gleit-Cache.

Gibt es Lösungen, um diesen Blinkfehler zu beheben?

Vielen Dank!

Antwort

17

Nach meinen vielen Versuchen, einfach verwenden SimpleTarget löste mein Problem danke!

Glide 
.with(context) 
.load(filepath) 
.asBitmap() 
.diskCacheStrategy(DiskCacheStrategy.NONE) 
.skipMemoryCache(true) 
.dontAnimate() 
.into(new SimpleTarget<Bitmap>() { 

      @Override 
      public void onResourceReady(Bitmap arg0, GlideAnimation<? super Bitmap> arg1) { 
       // TODO Auto-generated method stub 
       holder.mItemView.setImageBitmap(arg0); 
      } 
     }); 
0

Update-Glide von Version 3 bis 4 und setSupportsChangeAnimations(false) für RecyclerView gelöstes Problem für mich

RecyclerView.ItemAnimator animator = recyclerView.getItemAnimator(); 
if (animator instanceof SimpleItemAnimator) { 
    ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); 
} 
0

In meinem Fall löste ich das Problem, indem definierten Dimensionen mit auf meinem imageView.

<ImageView 
     android:id="@+id/poster_imageview" 
     android:layout_width="130dp" 
     android:layout_height="183dp" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" 
     android:src="@drawable/placeholder" /> 
Verwandte Themen