Android Picasso. Экономия трафика

181
05 августа 2018, 02:40

В приложении использую Picasso для загрузки картинок с интернета. Примерно так

Picasso.with (context).load (url).error (erDraw).placeholder(plDraw).into (imageView)

Много жрет трафика при том что самая большое изоброжения 1мб. Можно ли как то ускорить и уменьшить расход трафика?

Answer 1

Кэшируйте изображения. Вы можете скачивать их в приложение и обращаться например из базы. Если источник ваш, тогда вот способ скачивания и обращения соответственно.

Класс для сохранения.

public class SaveImageHelper implements Target {
    private Context context;
    private WeakReference<ContentResolver>contentResolverWeakReference;
    private String name;
    public SaveImageHelper(Context context, ContentResolver contentResolver, String name) {
        this.context = context;
        this.contentResolverWeakReference = new WeakReference<ContentResolver>(contentResolver);
        this.name = name;
    }
    @Override
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
        File file = new File(Queries.mainActivityContext.getApplicationInfo().dataDir + "/" + "name.jpg");
        try {
            file.createNewFile();
            FileOutputStream ostream = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
            ostream.flush();
            ostream.close();
        } catch (IOException e) {
            Log.e("IOException", e.getLocalizedMessage());
        }
    }
    @Override
    public void onBitmapFailed(Exception e, Drawable errorDrawable) {
    }
    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {
    }
}

Само сохранение

    picasso.load(avatarUrl)
.into(new SaveImageHelper(getBaseContext(),getApplicationContext().getContentResolver(),"name.jpg"));

Обращение

picasso.load( new File(getApplicationInfo().dataDir + "/" + "name.jpg"))
                    .into(im);
READ ALSO
Как парсить с помощью gson суб классы разно типа?

Как парсить с помощью gson суб классы разно типа?

Получаю с сервера ответ Обьект с общим полем доступным для наследникок result и 2 типа данных дата 1)Это здесь поле data это обьект с почтовым...

189
Получение сообщений из публичных бесед VK API

Получение сообщений из публичных бесед VK API

Недавно ВКонтакте разрешила добавлять чат-ботов в беседы, не обошлось без проблем

227
Пул констант в Java

Пул констант в Java

Не раз слышал о так называемом пуле констант в языке программирования JavaЗнаю о пуле объектов типа String, пуле для типов Byte, Short, Character, Integer, Long и даже...

226
Число вида - 0.0001 отображается на странице как 0

Число вида - 0.0001 отображается на странице как 0

Использую <fmt:formatNumber value="${nckoopsqlcp}" type="number"/> для того чтобы убрать незначащие нули у числа, но есть проблема, число вида - 0

208