첫번째 함수: Uri에서 rowID를 추출
두번째 함수 : rowID를 통해 썸네일 추출
처음 if문은 무언가 잘못되어서 항목이 없을 때,
두번째 else if 문은 썸네일이 정상적으로 있어서 정상적으로 리턴할 때,
마지막 else문은 "썸네일이 존재하지 않을 때" 진입 함.
public Uri thumbnailURIFromOriginalURI(Uri selectedImageUri) {
long rowId = Long.valueOf(selectedImageUri.getLastPathSegment());
return uriToThumbnail(""+ rowId);
}
public Uri uriToThumbnail(String imageId) {
String[] projection = { MediaStore.Images.Thumbnails.DATA };
ContentResolver contentResolver = getContentResolver();
Cursor thumbnailCursor = contentResolver.query(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection,
MediaStore.Images.Thumbnails.IMAGE_ID + "=?",
new String[]{imageId},
null);
if (thumbnailCursor == null) {
return null;
} else if (thumbnailCursor.moveToFirst()) {
int thumbnailColumnIndex = thumbnailCursor.getColumnIndex(projection[0]);
String thumbnailPath = thumbnailCursor.getString(thumbnailColumnIndex);
thumbnailCursor.close();
return Uri.parse(thumbnailPath);
} else {
MediaStore.Images.Thumbnails.getThumbnail(contentResolver, Long.parseLong(imageId), MediaStore.Images.Thumbnails.MINI_KIND, null);
thumbnailCursor.close();
return uriToThumbnail(imageId);
}
}
Uri to Thumbnail
Thumbnail from Uri
'코딩 > 안드로이드' 카테고리의 다른 글
Android studio code coverage시 Robolectric 사용할 때 ComplexColor 부분 에러 해결 (0) | 2018.09.17 |
---|---|
MVP 패턴 (0) | 2018.09.14 |
jacoco 사용을 위한 환경 세팅 (0) | 2018.09.14 |
심플 프리뷰 메이커 개인정보 처리방침 (0) | 2018.07.29 |
Uri to path, path to Uri (0) | 2018.04.29 |