問題タブ [android-lru-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ビットマップは LruCache に保存されていますが、取得できません
GridView のビットマップを LruCache にキャッシュしています。私はこれのためにマネージャーを作りました、以下を見てください:
addBitmapToMemoryCache()
Bitmaps を MemoryCache に保存するために AsyncTaskを呼び出したとき。
しかし、私がgetBitmapFromMemoryCache()
それを呼び出すとnull
。
つまり、AsyncTask が何度も呼び出されます。AsyncTask im で、ビットマップを LruCache に追加します。返された Bitmap は null であるため、LruCache に保存されている Bitmap はありません。しかし、私には理由がわかりません。私もオンラインで検索しましたが、リサイクル/ガベージコレクターと何か関係があるかもしれません。
では、キャッシュされた画像を適切にロードするにはどうすればよいでしょうか?
ヘルプや説明は適切です。
編集:
これを getView() メソッドの BaseAdapter 内で呼び出します。それと関係があると思います。最初はそれぞれの画像が Cache に追加されますが、その後、最初の画像が 10 回ほど追加されます。
android - Volley DiskBasedCache が FileNotFoundException をスローする
Android アプリの画像キャッシュにTrey Robinson の BitmapLRUCacheを使用しています。それ自体は画像キャッシュを提供しないため、Volley の LRU キャッシュの実装です。
ただし、HTTP 要求をキャッシュするためにDiskBasedCacheを使用します。ここで問題になりますが、DiskBasedCache がキャッシュ エントリを取得または削除しようとすると、FileNotFoundExceptions が繰り返し発生します。
以下のサンプルログ。
BitmapLRUcache を使用して ImageLoader を初期化するときに、DiskBasedCache がイメージ キャッシュを処理するのはなぜですか (以下を参照)。
以下は、キャッシュに使用しているコードです。
android - URL をビットマップに変換してキャッシュに保存し、Listview に表示する方法は?
私はコードを求めているわけではありません。問題にアプローチするためのガイダンスが必要なだけです。私は Android が初めてで、Google Images API から JSON を解析して特定のキーワードの画像の URL リンクを取得する小さなプロジェクトを行っています。JSON を正常に解析し、ListView + ArrayAdapter を作成し、Listview に各 URL を表示するところまで来ました。次に、これらのリンクを画像に変換し (ビットマップを使用すると思います)、Listview に表示する方法を考え出さなければなりません。画像ごとにディスク容量を消費するため、SD カードにロードするのではなく、キャッシュに保存します。問題は、キャッシュにサードパーティのライブラリを使用できないことです. Google で検索したところ、ほとんどの場合「LazyLoad」や「Universal Image Loader」などが見つかりましたが、残念ながらそれらは公式ではなくサードパーティのようです。Android Developer Web サイトで「LruCache」を見つけましたが、私の目的に最適なものはありますか? 問題を解決するために必要な他のオプションを教えてもらえますか?
ありがとうございました!
android - 画像へのリンクは sqllite DB に保存されます。キャッシュの方法
画像へのリンクは sqllite DB に保存されているため、それらを gridView に表示する必要があります。ただし、ディスクにキャッシュする必要があると言われました。
私の質問は、私が従うべき手順は何ですか? 最初に DB からのリンクをディスク Cache オブジェクトに格納してから、ディスク Cache オブジェクトを使用して gridView にデータを入力しますか?
android - DiskLruCache にサブディレクトリを作成するには?
プロジェクトで DiskLruCache を使用しています。うまく機能しますが、ルート キャッシュ ディレクトリの下にサブ ディレクトリを作成できるかどうかを知りたいです。
- DiskLruCache は、https://github.com/JakeWharton/DiskLruCacheで人気のあるプロジェクトです。
例えば:
MainCache とそのサブディレクトリの下にあるファイルの合計サイズは、引き続き 1GB ポリシーに準拠する必要があります。
android - Android BaseAdapter with LruCache いくつかの UI の問題
ベース アダプターと LruCache を使用して、すべての連絡先画像を含むリスト ビューを実装しようとしています。しかし、画面上の長いスクロールでは、実際の画像を設定する前にすべての画像(そのビューに対応する)が表示されます。
例: 1 ページあたり 5 項目のリスト ビュー。最初の連絡先から 60 番目までスクロールした場合、リスト ビューの最初のビューでは、1,6,11,16,21..51 の画像が 55 番目の画像の前に数ミリ秒間表示されます。示されています
主なコードは
BitmapManager ポスト実行コード
この問題を解決する方法。ありがとう
android - LruCache の使用のためにフラグメントを再利用できません
構成の変更全体でビットマップをキャッシュするために、ほぼ行ごとにGoogleの例を使用しています。
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#config-changes
フィールドが更新されたときに addBitmapToMemoryCache を呼び出しています。これは、構成の変更 (デバイスのローテーション) の前です。ただし、findOrCreateRetainFragment にデバッグ情報を入れた後:
フラグメントは常に新しくインスタンス化されるため、古い LruCache にアクセスすることはありませんsetRetainInstance(true)
。Googleの例に何か問題がありますか? v4 サポート FragmentManager を使用しています。
私のonCreateの関連部分は次のとおりです。