2015-07-16 10 views
5

Sto utilizzando Glide per caricare bitmap per creare una gif.Quando si carica una bitmap usando Glide chi è responsabile del riciclaggio?

 for (int i = 0, count = files.size(); i < count; i++) { 
     Bitmap img = Glide.with(context) 
      .load(files.get(i)) 
      .asBitmap() 
      .centerCrop() 
      .into(GIF_EXPORT_SIZE/2, GIF_EXPORT_SIZE/2) 
      .get(); 

     // addFrame creates a copy of img, so we can re-use this bitmap 
     encoder.addFrame(img); 
    } 

Mi chiedevo chi è responsabile di riciclaggio di questo bitmap o rimetterlo in Glide BitmapPool? Non sembra che Glide possa essere riutilizzato automaticamente o usando clear().

Ho cercato di aggiungere nuovamente la bitmap al pool utilizzando qualcosa come Glide.get(context).getBitmapPool().put(img) ma in base alla documentazione che utilizza direttamente BitmapPool può portare a comportamenti non definiti.

risposta

0

Secondo la loro wiki, Resource re-use: How, non è necessario riciclare poiché Glide lo fa, ma in base al conteggio delle risorse.

Quando il conteggio dei riferimenti scende a zero, Glide ricicla la risorsa e ne restituisce il contenuto in qualsiasi pool disponibile.

Anche se, si dovrà chiamare in modo esplicito Glide.clear() per diminuire il numero di risorse a causa di planata è solo in grado di chiamare Glide.clear() quando si sostituisce l'immagine di un obiettivo/vista già esistente. Spero che questo ti aiuti.

Problemi correlati