2017-02-28 4 views
0

Ich benutze Glide mit Recyclerview .Wenn ich meine App auf meinem Gerät für die erste
Zeit (mit Android Studio) Bilder richtig geladen, aber nach drücken Sie zurück und
App beenden dann App wieder öffnen Bilder nicht laden und ich muss auf den Karten (Click
auf der Karte neue Aktivität öffnet) Anzeige Bilder zu laden (es scheint
Bilder zwischengespeichert jedoch nicht laden) ich alle Arten von Debug-Protokollierung aktivieren, aber bekommen keine
Ausnahme oder FehlerLade Bilder aus dem Cache Glide

Glide.with(mContext) 
    .load(Uri.parse(image.getImage_url())) 
    .listener(new RequestListener<Uri, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) { 
        return false; 
      } 
      @Override 
      public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){ 
       if (dialog.isShowing()) 
        dialog.dismiss(); 
       return false; 
      } 
     }) 
     .into(holder.image); 


Dieser Code im Recyclerview-Adapter

Glide Version 3.7.0

Und das ist das Layout der Elemente des Adapters

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card_view" 
    card_view:cardCornerRadius="4dp" 
    android:clickable="true" 
    android:focusable="true" 
    android:layout_weight="1" 
    android:layout_margin="2dp" 
    android:background="?android:attr/selectableItemBackground" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <ImageView 
      android:id="@+id/activity_project_pro_image" 
      android:layout_width="match_parent" 
      android:background="@drawable/card_view_image_holder" 
      android:scaleType="fitXY" 
      android:layout_height="200dp" /> 

     <customfonts.MyTextViewLight 
      android:id="@+id/activity_project_pro_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/design_name" 
      android:textSize="18dp" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:gravity="center_horizontal" 
      android:textColor="#aa000000"/> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:background="@color/under_line" 
      /> 
     <LinearLayout 
      android:layout_marginTop="4dp" 
      android:layout_marginBottom="5dp" 
      android:layout_width="match_parent" 
      android:orientation="horizontal" 
      android:layout_height="wrap_content"> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:layout_height="match_parent"> 
       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"> 

        <ImageButton 
         android:layout_gravity="left" 
         android:id="@+id/image_activity_share_btn" 
         android:layout_width="32dp" 
         android:background="?android:attr/selectableItemBackground" 
         android:src="@drawable/card_share" 
         android:scaleType="fitXY" 
         android:layout_marginRight="100dp" 
         android:contextClickable="true" 
         android:layout_height="32dp" /> 

       </LinearLayout> 
       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"> 
        <ImageButton 
         android:layout_gravity="left" 
         android:id="@+id/image_activity_save_btn" 
         android:layout_width="32dp" 
         android:background="?android:attr/selectableItemBackground" 
         android:src="@drawable/card_downlaod" 
         android:scaleType="fitXY" 
         android:layout_marginRight="5dp" 
         android:contextClickable="true" 
         android:layout_height="32dp" /> 

       </LinearLayout> 
      </LinearLayout> 

     </LinearLayout> 
    </LinearLayout> 




</android.support.v7.widget.CardView> 

Sorry für lange Pfosten

Antwort

0

ich auch das gleiche Problem vor einigen Tagen konfrontiert. Ich habe diskCacheStrategy (DiskCacheStrategy.ALL) und dontAnimate() Methode in meinem glide Aufruf hinzugefügt und es begann gut zu funktionieren.

Glide.with(mContext) 
    .load(Uri.parse(image.getImage_url())) 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .dontAnimate() 
    .listener(new RequestListener<Uri, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) { 
        return false; 
      } 
      @Override 
      public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){ 
       if (dialog.isShowing()) 
        dialog.dismiss(); 
       return false; 
      } 
     }) 
     .into(holder.image); 

Lassen Sie mich wissen, ob es für Sie funktioniert oder nicht.

+0

Ich habe es vorher getestet und es jetzt erneut getestet, aber bekomme kein Ergebnis. @Shivam – MrMost

+1

Ich suche viel und finde, dass das Problem durch Berechnung der Bildgröße von Glide sein kann. Ursache, wenn ich auf einen der cardviews (vor dem Laden Bilder) alle Bilder plötzlich angezeigt @Shivam – MrMost

+0

Es kann ein Fall sein, wurde mein Problem gelöst, indem diese Methoden – Shivam