- Android
-
2011-12-17
SDカードに画像を保存する際、同じ名前で上書き保存すると、画像自身は上書きされますが、
元画像のサムネイルだけが残ってしまいます。
実際は、サムネイルとデータベースにもデータが残っているのではないでしょうか。
そのため、上書き保存したい場合は、データベースから削除する必要があります。
String PATH = Environment.getExternalStorageDirectory().toString();
Uri IMAGE_URI = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
File file = new File(PATH, filename);
if(file.exists()) {
String[] proj = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj, MediaStore.Images.Media.DATA + " = ?", new String[] { PATH + "/" + filename }, null);
if(cursor.getCount() != 0) {
cursor.moveToFirst();
Uri deleteUri = ContentUris.appendId(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.buildUpon(),
cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID))).build();
getContentResolver().delete(deleteUri, null, null);
}
file.delete();
}
6,934 views




