1

私はNovodaImageLoader(https://github.com/novoda/ImageLoader)を使用していますが、このローダーをCursorAdapterで使用すると、すべて問題ありません。しかし、1つのImageViewでアクティビティにアダプタを使用せずに使用したい場合、異なるURLに対して同じ画像を取得します。

//onCreate in Activity   
imageManager = MyApplication.getImageLoader(); 
imageTagFactory = new ImageTagFactory(this, R.drawable.ic_refresh_inverse);
imgView = (ImageView) findViewById(R.id.imgIV);


//fillData - when I finish loading img URL from DB with CursorLoader
imgView.setTag(imageTagFactory.build(imgURL));
imageManager.getLoader().load(imgView);

//code in onCreate Application
LoaderSettings settings = new SettingsBuilder().withDisconnectOnEveryCall(true).withCacheManager(new LruBitmapCache(this)).build(this);
imageManager = new ImageManager(this, settings);

キャッシュディレクトリを見ると、別の画像が読み込まれていますが、使用されていません。問題が発生する可能性のある場所や、このライブラリを適切に使用して1つの画像のみをロードする方法について考えてみてください。
ありがとうございました!

4

1 に答える 1

1

この問題はおそらくこのhttps://github.com/novoda/ImageLoader/issues/41に似て います。URLにクエリパラメータがありますか?その場合は、設定ビルダーでこの.withEnableQueryInHashGeneration(false)を追加してみてください

これは、パラメータenableQueryInHashGenerationの背後にあるロジックを反転させているバグです。このパラメーターは、画像のハッシュ名の生成でURLのクエリ部分を有効/無効にする必要があります(デフォルトでは有効にする必要があります)。これは、URLにパラメータとしてセッショントークンがあり、同じ画像を何度もダウンロードしたくない場合に便利です。

この問題は1.5.6バージョンで解決されます

于 2012-06-25T22:01:26.260 に答える