1

インターネットからリモートビューに画像を遅延読み込みする方法はありますか?

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;
}

ありがとう

4

2 に答える 2

3

絶対

  1. ウィジェットを通常の方法で描画し、すべてのテキスト部分などを画像の横に描画します
  2. 画像をロードするサービスを作成します。これは、appwidget からサービスを作成して呼び出す方法を含む優れたチュートリアルです。
  3. ウィジェットを更新したら、サービスを呼び出します。ウィジェット ID と画像 URL を渡す
  4. キャッシュから、またはサービスでリモートから画像を読み込み、ウィジェットを再度更新します。出来上がり、あなたは今それを持っています
于 2011-12-29T23:29:45.720 に答える
1

遅延読み込みの android-query lib を試してください。

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

于 2012-04-18T02:53:22.023 に答える