共享过渡后删除图像
Deleting an image after shared transition
我正在创建一个带有共享过渡动画的应用程序。为此,我创建了一个带有图像的意图。但是图像会存储在设备上。但是如何在转换后删除它?
我在这里分享转换:
Bitmap photo = ((BitmapDrawable) drawable).getBitmap();
String path = MediaStore.Images.Media.insertImage(getContentResolver(), photo, "pic", null);
Uri uri = Uri.parse(path);
intent.putExtra(Intent.EXTRA_STREAM, uri);
我在这里收到 uri:
pic = extras.getParcelable(Intent.EXTRA_STREAM);
这里我尝试删除图片,但没有找到:
File fdlt = new File(pic.getPath());
if (fdlt.exists()) {
if (fdlt.delete()) {
Log.e("DELETED", "DELETED");
} else {
Log.e("NOT DELETED", "NOT DELETED");
}
} else {
Log.e("FILE NOT FOUND", "FILE NOT FOUND");
}
图片路径示例:/external/images/media/2750
您可以将图像存储在应用的缓存目录中,让 Android 负责删除它:Creating temporary files in Android
File fdlt = new File(pic.getPath());
if (fdlt.exists()) {
if (fdlt.delete()) {
Log.e("DELETED", "DELETED");
} else {
Log.e("NOT DELETED", "NOT DELETED");
}
} else {
Log.e("FILE NOT FOUND", "FILE NOT FOUND");
}
将您的此代码替换为以下代码。
int size = 0;
size = this.getContentResolver().delete(pic,
null, null);
if (size == 0) {
Log.e("NOT DELETED", "NOT DELETED");
} else {
Log.e("DELETED", "DELETED");
}
我正在创建一个带有共享过渡动画的应用程序。为此,我创建了一个带有图像的意图。但是图像会存储在设备上。但是如何在转换后删除它?
我在这里分享转换:
Bitmap photo = ((BitmapDrawable) drawable).getBitmap();
String path = MediaStore.Images.Media.insertImage(getContentResolver(), photo, "pic", null);
Uri uri = Uri.parse(path);
intent.putExtra(Intent.EXTRA_STREAM, uri);
我在这里收到 uri:
pic = extras.getParcelable(Intent.EXTRA_STREAM);
这里我尝试删除图片,但没有找到:
File fdlt = new File(pic.getPath());
if (fdlt.exists()) {
if (fdlt.delete()) {
Log.e("DELETED", "DELETED");
} else {
Log.e("NOT DELETED", "NOT DELETED");
}
} else {
Log.e("FILE NOT FOUND", "FILE NOT FOUND");
}
图片路径示例:/external/images/media/2750
您可以将图像存储在应用的缓存目录中,让 Android 负责删除它:Creating temporary files in Android
File fdlt = new File(pic.getPath());
if (fdlt.exists()) {
if (fdlt.delete()) {
Log.e("DELETED", "DELETED");
} else {
Log.e("NOT DELETED", "NOT DELETED");
}
} else {
Log.e("FILE NOT FOUND", "FILE NOT FOUND");
}
将您的此代码替换为以下代码。
int size = 0;
size = this.getContentResolver().delete(pic,
null, null);
if (size == 0) {
Log.e("NOT DELETED", "NOT DELETED");
} else {
Log.e("DELETED", "DELETED");
}