이미지 갤러리 만들기 저는 이상한 문제에 직면 해 있습니다. 다음과 같은 앨범의 이미지를 쿼리합니다.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의 이미지를 수집하기 시작합니다. 다음과 같이 특정 이미지 ID에 대한 비트 맵을 가져옵니다.
Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail(contentResolver, imageId, MediaStore.Images.Thumbnails.MICRO_KIND, null);
대부분의 장치에서 잘 동작합니다. 오늘 저는 Xiaomi Redmi 3 장치를 테스트했습니다.이 장치는 거의 항상 동일한 축소판을 반환합니다. 그래서 앨범에 200 장의 그림이 있다면 나는 하나 또는 두 장의 정확한 것을 얻고 나머지는 똑같은 정확한 이미지입니다.
그러나 MINI_KIND 미리보기 이미지를 요청하면 모두 괜찮습니다.
이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?
CyanogenMod 14.1 (야간 빌드)을 실행하는 Nexus 5에서도 동일한 문제가 발생합니다. – MaxGyver
나는 피할 수없는 버그라고 추측하므로 MINI_KIND를 사용하고 나중에 비트 맵 크기를 MICRO_KIND 크기로 변경합니다. – Anonymous
불행히도 MINI_KIND는 훨씬 느립니다. MICRO_KIND 축소판으로 인해 오류가 발생하면 먼저이 작업을 시도한 다음 필요에 따라 MINI_KIND 축소판을로드 할 수 있습니다. – MaxGyver