我需要从用户选择的SD卡中删除图像.在我的活动中,在用户从图库中选择图像后,我执行以下代码:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Utils.imgUri = data.getData();
Utils.imgPath = getPath(Utils.imgUri);
File file = new File(Utils.imgPath);
boolean deleted = file.delete();
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中getPath方法是:
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if(cursor!=null){
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
else return null;
}
Run Code Online (Sandbox Code Playgroud)
图像被正确删除,但在图库中仍然保留已删除图像的预览.当我点击它时,加载了一个黑色图像..
那么,在从我的应用代码中删除一些图像后,如何更新图库预览?
我有一个地图视图,其中包含我要加载的数千个项目.很明显,我无法在创建视图时加载它们.
我想我必须根据当前显示的内容异步加载它们.
如何仅加载位于屏幕上显示的地图部分中的项目?