2012-11-23 177 views
3
case R.id.menu_delete: 
    File photoToDelete = new File(photoPath, photoList[gPosition]); 
    photoToDelete.delete(); 
    checkPhotoFolder(); 
    galleryAdapter.notifyDataSetChanged(); 
    Log.d("position", "" + gPosition); 
    return true; 

我使用上面的代码手动删除照片文件。但在系统库中,照片仍显示空白缩略图。 问题是我该如何删除照片文件及其在图库中的缩略图?手动删除照片文件后在图库中删除照片缩略图

+0

对不起最新的答案,但我没有解决这个错误,如[这](http://stackoverflow.com/a/37855889/1332870) –

回答

-1

您必须更新存储照片的数据结构(例如列表或数组)。 我想是photoList。 所以,你应该做的(假设photoList是一个数组):

photoList = photoList.asList().remove(gPosition).toArray(); 
+0

我的意思是除去在Android的照片缩略图内置画廊兄弟。 – chengsokdara

+0

这个答案与问题无关。 – Eric

0

尝试调用MediaScanner从Google's example

+1

这项工作仅用于保存新照片,但是当它扫描已删除的文件时,它会在系统库中显示空白缩略图。 – chengsokdara

+0

它没有与我一起工作..测试Nexus 5 – swiftBoy

+0

@chengsokdara你是对的我面临着同样的问题。你有没有得到解决方案? –

0

刷新画廊

// Tell the media scanner about the new file so that it is 
// immediately available to the user. 
MediaScannerConnection.scanFile(this, 
     new String[] { file.toString() }, null, 
     new MediaScannerConnection.OnScanCompletedListener() { 
    public void onScanCompleted(String path, Uri uri) { 
     Log.i("ExternalStorage", "Scanned " + path + ":"); 
     Log.i("ExternalStorage", "-> uri=" + uri); 
    } 
}); 

代码试试这个。

getContentResolver().delete(Uri.fromFile(photoToDelete), null, null);