이미지 저장시 썸네일 등록과 관련해서 조언 좀 부탁드립니다.
아래와 같이 콜백을 받아서 파일로 저장을 하는데,
저장도 잘되고, managedQuery를 통한 커서로도 List를 구현하는데 문제가 없습니다.
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
String sDate = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss").format(new java.util.Date());
String path = "sdcard/"+sDate+".jpg";
try {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path)));
ContentValues values = new ContentValues();
values.put("_data", path);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.DATA, path);
values.put(Images.Media.SIZE, data.length);
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream outStream1 = getContentResolver().openOutputStream(uri);
outStream1.write(data);
outStream1.close();
}
그런데,
Bitmap bmp = Images.Thumbnails.getThumbnail(getContentResolver(), pFile1.getImage(), Images.Thumbnails.MICRO_KIND, null);
위와 같이하면 썸네일을 가져올 수가 없네요. 어딘가...등록을 해줘야하는 것 같은데,
이미지파일을 폰에 복사해넣거나,,, 폰을 껐다켜면 썸네일이 나오는데....
ContentValues values2 = new ContentValues();
values2.put(Images.Thumbnails.KIND, Images.Thumbnails.MINI_KIND);
values2.put(Images.Thumbnails.HEIGHT, bmp.getHeight());
values2.put(Images.Thumbnails.WIDTH, bmp.getWidth());
values2.put(Images.Thumbnails.IMAGE_ID, Long.parseLong(uri.getLastPathSegment()));
getContentResolver().insert(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, values2);
이렇게 해봤는데도 안되고,,,
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(imageUri);
sendBroadcast(intent);
Broadcast를 해봐도 안되고,,,
getBaseContext().getContentResolver().notifyChange(uri,null);
NotifyChange를 해봐도 안되고,,,
뭘 어떻게 해야하는지 아시는 분 계시면 조언 좀 부탁드리겠습니다.
읽어주셔서 감사합니다.