画像ギャラリーを構築する私は奇妙な問題に直面しています。Android - ThumbnailUtils.getThumbnailは間違った画像を返します
String sortBy=MediaStore.Images.Media.DATE_MODIFIED+" desc";
String selection=MediaStore.Images.Media.DATA +" like?";
String[] selectionArgs=new String[]{"%"+folderPath+"%"};
String[] projection = {MediaStore.Images.Media._ID,MediaStore.Images.Media.DATA,MediaStore.Images.Media.DATE_MODIFIED,MediaStore.Images.Media.BUCKET_ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME};
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortBy);
その後、私は質問から得たすべてのIDの画像を収集し始めます。
Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(contentResolver, imageId, MediaStore.Images.Thumbnails.MICRO_KIND, null);
ほとんどのデバイスでは、次のような特定のイメージIDのビットマップを取得します。今日私はXiaomi Redmi 3デバイスをテストしました。これはほぼ常に同じサムネイルを返します。だからアルバムに200枚の写真がある場合、私は1つか2つの正しいと残りは同じ正確な画像です。
ただし、MINI_KINDサムネイルをリクエストしても、すべて正常に返されます。
これを引き起こしているのは何ですか。どうすれば回避できますか?
CyanogenMod 14.1(夜間ビルド)を実行しているNexus 5でも同じ問題があります。 – MaxGyver
これは避けることができないバグだと思いますので、MINI_KINDを使用し、後でビットマップのサイズをMICRO_KINDサイズに変更しました – Anonymous
残念ながら、MINI_KINDははるかに低速です。 MICRO_KINDサムネイルを取得するとエラーが発生した場合は、最初にこれを試してから、必要に応じてMINI_KINDサムネイルを読み込むことができます。 – MaxGyver