Есть ли способ передать либо bitmap-config, либо заставить этот BitmapConfig? Я бы не хотел этого делать с помощью Transformation(), так как это потребует большего количества процессора, чем нужно, и я не уверен, что это делается перед кешем (моя основная причина заключается в том, что изображения в кеше не должны потреблять столько памяти)
Загрузить Bitmap с RGB_565 через Picasso
Ответ 1
Я нашел решение - у picasso 2.2.0 теперь есть API для этого - раньше использовал 2.1.1, и для этого не было API. Похоже на это:
picasso.load(url).config(Bitmap.Config.RGB_565).into(target);
Ответ 2
Я нашел хорошее решение, которое работает очень хорошо и 100%
(Извините, но ответ @ligi не работает для меня])
Используйте этот класс util для любых изменений растрового изображения picasso (здесь RGB565)
Примечание также, что Picasso строит одноэлементный класс
Таким образом, эти изменения будут охватывать все остальные (также если вы не планируете использовать RGB565 везде)
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();
}
}
и просто используйте его
Picasso.with(getContext())
.load(url)
.transform(new Config565Transformation())
.into(imageView);