そのため、ギャラリー アプリでネイティブ イメージを表示するために、この素晴らしいライブラリGlideを使用しています。ViewPager
withを使用しFragmentStatePagerAdapter
てフルサイズの画像を表示しています。ページャのオフスクリーン制限は1
(メモリを節約するためのデフォルト) です。このコードを使用しViewPager
て、フラグメントに画像をロードしています:
Glide.with(getActivity())
.loadFromMediaStore(uri)
.asBitmap()
.signature(new MediaStoreSignature(mimeType, dateModified,
.into(mImageView);
今、私はここで次のようないくつかの問題に直面しています:
- 画像のロードにはかなりの時間がかかります (キャッシュされていない場合)。そのため、ユーザーがビューページャーをスクロールしている間、画像の読み込み中に空白の画面が表示されますが、これは避けたいことです。これを行う方法はありますか?たぶん、画像を事前にキャッシュすることによって?
- 大きなサイズの画像 (主にカメラの写真) をスクロールしているときに、OOM 例外がスローされ、画像が読み込まれないため、空白の画面が表示されることがあります。これは、ポートレイト モードからランドスケープ モードに移行するときにも発生します。それで、私は次のような方法を使用しようとしました--画像が既に読み込まれ
atMost()
ているため、画像の品質をさらに低下させ、OOMも引き起こしています。OOM 例外を発生させずに最高の画質を実現するにはどうすればよいですか?RGB_565
approximate()
2 番目の問題については、オフスクリーン アイテムの低品質の画像を読み込み、画面に表示されたときに品質を向上させることを考えていました。出来ますか?
私も使用しようとしましARGB_8888
たが、結果は同じでした: OOM 例外。