Andriod中用file.delete删除图片后,相册中仍存在
时间: 2024-05-02 21:16:57 浏览: 8
在 Android 中,删除文件只是将文件从文件系统中删除,并不会自动更新媒体库。因此,即使你使用 `File.delete()` 方法删除了图片文件,但相册中仍会显示该图片,因为相册是通过媒体库访问文件的。
要在媒体库中删除该图片,你需要使用以下步骤:
1. 使用 `ContentResolver` 对象查询包含该图片的媒体库中的文件路径。
2. 使用 `MediaStore.Images.Media.EXTERNAL_CONTENT_URI` Uri 访问媒体库中的图片。
3. 使用 `ContentResolver.delete()` 方法删除该图片。
下面是示例代码:
```java
String[] projection = { MediaStore.Images.Media.DATA };
String selection = MediaStore.Images.Media.DATA + "=?";
String[] selectionArgs = { file.getAbsolutePath() };
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, null);
if (cursor != null && cursor.moveToFirst()) {
int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
String path = cursor.getString(index);
getContentResolver().delete(Uri.parse("file://" + path), null, null);
cursor.close();
}
```
这段代码首先查询媒体库中包含该文件路径的图片,然后使用 `getContentResolver().delete()` 方法删除该图片。