【问题标题】:Android emulator: How to refresh image gallery programmatically?Android 模拟器:如何以编程方式刷新图片库?
【发布时间】:2012-12-09 21:40:26
【问题描述】:

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

我试过了,但是好像不行:

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

我想避免每次删除某些图像时都手动扫描 SD 卡。

【问题讨论】:

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


    【解决方案1】:
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
            Uri.parse("file://" +  Environment.getExternalStorageDirectory())));
    

    我在 froyo 中使用了上面的代码,结果代码在 froyo 中运行良好。

    【讨论】:

      【解决方案2】:

      问题是我在删除时传递的是图像 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);
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多