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