Necesito eliminar una imagen de la tarjeta SD elegida por el usuario. En mi actividad, después de que un usuario seleccione una imagen de la galería, que ejecuta este código:Android: eliminar una imagen de la tarjeta 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();
}
}
}
donde getPath método es:
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;
}
Las imágenes se eliminan correctamente, pero en la galería sigue siendo una vista previa de la imagen eliminada. Cuando toco sobre él, se carga una imagen en negro ...
entonces, ¿cómo puedo actualizar las vistas previas de la galería, después de eliminar algunas imágenes de mi código de aplicación?
No funciona. Deja la imagen en la galería. Instrucciones poco claras arriba, agregué su línea inmediatamente después de file.delete(); la función se llama. Si esto es correcto, el código no funciona como se esperaba. – Bisclavret
Super ... funciona como un encanto ... + 1 voto –