0

画像を遅延ロードするカスタム AdapterView (一種) があります。そのために、素晴らしいaquery ライブラリを使用します。

短編小説: ファイルのダウンサンプリングされたバージョンをキャッシュ (memcache と filecache) したいと思います。アダプターへの追加が速くなります。画像が小さい場合、AdapterView をスクロールするときにラグはありません。画像が大きい場合、ダウンサンプリングを使用しても少し遅れます。私はaquery、完全なバージョンのイメージを保存し、呼び出すたびにダウンサンプリングすることを発見しましたaq.image(...)元のバージョンではなく、サイズ変更されたバージョンをキャッシュする方法は?


長い話: 私の AdapterView は画像に大きく依存しています。これらのイメージはかなり大きく、アダプタ アイテムがインスタンス化されると、ダウンサンプリングしてリストに追加するのに時間がかかります。そのため、スクロール時に低解像度の写真でアイテムをインスタンス化し、スクロールが停止したときに高解像度のバージョンのみをロードするといいと思いました。2 つの別々の画像 URL (1 つはサムネイル用、もう 1 つは元の画像用) を使用すると、魅力的に機能します。しかし、私が使用する API は非常に限られているため、サムネイル画像の URL はわかりません。大きなバージョンを非同期でダウンロードし、ダウンサンプリングし、大きなバージョンと小さなバージョンの両方を保存してから、必要な方を使用する必要があります。そしてここから「短編小説」が始まります。

4

2 に答える 2

1

過去に AQuery ライブラリも使用していましたが、構成が制限されていたり、奇妙なプログレスバーの可視性の問題が発生したりした後、Android-Universal-Image Loader に移行しました。

https://github.com/nostra13/Android-Universal-Image-Loader必要な機能だけでなく、他の多くの便利な構成オプションも提供します。

このサイトを上から下まで読むだけで、すぐに実行できるはずです。

あなたの場合、最も興味深い行は

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
    .memoryCacheExtraOptions(480, 800) // default = device screen dimensions
    .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75)
    .discCache(new UnlimitedDiscCache(cacheDir)) // default
    .discCacheSize(50 * 1024 * 1024)
    .discCacheFileCount(100)

キャッシュされたファイル名を変更することもできます。

于 2013-03-09T21:37:26.520 に答える