본문 바로가기

코딩/안드로이드

Uri에서 썸네일 가져오기


첫번째 함수: 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