Android模拟器:如何以编程方式刷新图库?

时间:2012-12-09 21:40:27

标签: android refresh android-sdcard android-gallery android-image

我被困了所以我希望有人可以帮忙:)我有一个活动,我可以从画廊加载图像,然后它显示在屏幕上。在该屏幕上,我可以选择删除该图像。当我选择删除图像的选项时,图像被成功删除,但当我选择加载另一个图像时,它仍会显示在图库中。因此,用户仍然可以从图库中选择旧图片,但在这种情况下,它不会显示在屏幕上,因为它已被删除。删除图片后如何刷新图库?

我试过这个,但似乎不起作用:

sendBroadcast(new Intent(
            Intent.ACTION_MEDIA_MOUNTED,
            Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

我希望每次删除某些图像时都不要手动扫描SD卡。

2 个答案:

答案 0 :(得分:4)

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

我在froyo中使用上面的代码,结果代码在froyo中正常工作。

答案 1 :(得分:0)

问题是我在删除时传递了图像URI而不是绝对路径,所以它不成功。代码应如下所示。

File file = new File("some URI I received as a result of one method")
path = file.getAbsolutePath();
File f = new File(path);
    if (f.exists()) {
        if (f.delete()) {
            Log.w("DELETED","file Deleted");
        } else {
            Log.w("NOT DELETED","file not Deleted");
        }
    }

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
            Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

    imageViewField.setImageBitmap(null);

所以,该方法有效,但文件根本没有被删除,所以它仍然在图库中。