2014-05-21 9 views
14

c'è un modo per passare una bitmap-config o forzare questo BitmapConfig? Mi piacerebbe non farlo tramite Transformation() in quanto ciò consumerebbe più CPU del necessario e non sono sicuro che ciò avvenga prima della cache (il motivo principale per farlo è che le immagini nella cache non dovrebbero consumare così tanto memoria)carica Bitmap con RGB_565 via Picasso

risposta

51

Ho trovato la soluzione - picasso 2.2.0 ha ora un'API per questo - utilizzava 2.1.1 prima e non esisteva alcuna API per questo. Sembra che questo allora:

picasso.load(url).config(Bitmap.Config.RGB_565).into(target); 
+0

bel lavoro, grazie mille – Devon

0

Ho trovato una bella soluzione, che funziona molto bene e il 100%
(scusate ma risposta di @ligi non funziona per me])
utilizzare questa classe util per qualsiasi picasso modifiche bitmap (qui è RGB565)
Nota anche che Picasso classe accumulo Singleton
quindi questo solo le modifiche coprirà tutti gli altri (anche se non si prevede di utilizzare RGB565 ovunque)

import com.squareup.picasso.Transformation; 

public class Config565Transformation implements Transformation { 

    @Override 
    public Bitmap transform(Bitmap source) { 
     Bitmap resultBitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.RGB_565); 
     Canvas canvas = new Canvas(resultBitmap); 
     Paint paint = new Paint(); 
     paint.setFilterBitmap(true); 
     canvas.drawBitmap(source, 0, 0, paint); 
     source.recycle(); 
     return resultBitmap; 
    } 

    @Override 
    public String key() { 
     return Config565Transformation.class.getSimpleName(); 
    } 
} 

e semplicemente utilizzarlo

Picasso.with(getContext()) 
    .load(url) 
    .transform(new Config565Transformation()) 
    .into(imageView); 

Riferimento: https://habrahabr.ru/post/218453/

Problemi correlati