2017-07-27 2 views
1

J'utilise Glide pour charger GIF dans mon PagerAdapter.Utilisation de la mémoire élevée lors du chargement de gif en utilisant Glide

Les images proviennent du serveur avec une haute résolution et beaucoup de cadres.

J'ai remarqué que l'utilisation de la mémoire est élevée une fois que les fichiers GIF sont chargés et en cours de lecture et peuvent conduire à Out Of Memory.

J'ai essayé les méthodes suivantes de Glide (.override(),skipMemoryCache(),diskCacheStrategy()) mais l'utilisation de la mémoire n'a pas changé.

Existe-t-il d'autres méthodes dans Glide pouvant être utilisées?

Glide.with(mContext) 
      .load(imageUrl) 
      .override(480, 342) 
      .listener(new RequestListener<String, GlideDrawable>() { 
       @Override 
       public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
        return false; 
       } 

       @Override 
       public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
        imageViewBackground.setImageDrawable(resource); 
        return false; 
       } 
      }) 
    .into(imageViewBackground); 
+0

Pouvez-vous ajouter le code que vous utilisez? –

+0

Vous devez effectuer une recadrage au centre dans votre gif et ne pas manipuler le cache si vous n'êtes pas au courant. – Enzokie

+0

@YamenNassif, ajouté le code que j'utilise. – eysidi

Répondre

0
Glide.with(mContext) 
     .load(imageUrl) 
     .override(480, 342) 
     .into(...) 

le remplacement a fait l'affaire pour moi et pas plus RemoteViews pour la mise à jour widget dépasse erreur d'utilisation de la mémoire bitmap max

0

Je reçois cette façon après beaucoup tentent

Glide.with(mContext) 
    .load(media_url) 
    .thumbnail(Glide 
    .with(mContext) 
    .load(media_url) 
    .listener(new RequestListener<String, GlideDrawable>() { 
           @Override 
           public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
            progressBar.setVisibility(View.GONE); 
            return false; 

           } 

           @Override 
           public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
            progressBar.setVisibility(View.GONE); 
            return false; 
           } 
          }) 
        ) 

        .dontAnimate() 
        .into(mIvMessageImage); 
+0

Ça prend du temps mais joue. – bhoomika