Lazyload изображение в appwidget - PullRequest
       32

Lazyload изображение в appwidget

1 голос
/ 08 сентября 2011

Есть ли способ ленивой загрузки изображения из интернета в удаленный просмотр.

remoteView.setImageViewBitmap(R.id.image, UrlUtils.loadBitmap(bitmapUrl));

Я использую эту функцию, но она блокирует мой виджет в течение небольшого времени.

public static Bitmap loadBitmap(String url) {
    Bitmap bitmap = null;
    InputStream in = null;
    BufferedOutputStream out = null;

    try {

        in = new BufferedInputStream(getPageInputStream(url));

        final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
        out = new BufferedOutputStream(dataStream);
        Utils.copy(in, out);
        out.flush();

        final byte[] data = dataStream.toByteArray();
        BitmapFactory.Options options = new BitmapFactory.Options();
        // options.inSampleSize = 1;

        bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,
                options);

        in.close();
        out.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

    return bitmap;
}

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 декабря 2011

Абсолютно

  1. Нарисуйте свой виджет обычным способом, все текстовые части и т. Д. Рядом с изображением
  2. Создайте сервис, который будет загружать изображение. Вот хороший учебник , который включает в себя, как создать и вызвать службу из appwidget
  3. После обновления вашего виджета позвоните в службу.Передайте идентификатор виджета и URL изображения
  4. Загрузите изображение из кэша или удаленно в свой сервис и обновите свой виджет снова.Вуаля, у вас есть это сейчас
1 голос
/ 18 апреля 2012

Попробуйте lib android-query для загрузки lazyload.

https://code.google.com/p/android-query/#Image_Loading

...