1

这是我在小米红米 Note 4 设备上发现的问题(MIUI Global 8.1,Marshmallow)

所以我正在制作一个生成位图并将其保存到 FOOD 文件夹的应用程序。我已成功生成图像并将其保存到 FOOD 文件夹。

但是,某些图像不会显示在 Gallery App 上。特别是小米的图库应用和谷歌的照片。请注意,某些图像确实会显示在 Gallery App 上。

我的问题是:

  • 保存图像后如何在图库中显示图像?
  • 究竟是什么导致了这个问题?

这真的让我很困惑,因为它适用于具有不同操作系统的其他设备。

这是我到目前为止所尝试的:

  • 我试过使用Intent.ACTION_MEDIA_SCANNER_SCAN_FILEand MediaScannerConnection.scanFile

    try {
        String fileName = imagePath.substring(imagePath.lastIndexOf("/") + 1);
        MediaStore.Images.Media.insertImage(H5Environment.getContext().getContentResolver(), imagePath,
            fileName, null);
    } catch (Exception e) {
        DanaLog.e(TAG, e);
    }
    
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    Uri contentUri = Uri.fromFile(new File(imagePath));
    mediaScanIntent.setData(contentUri);
    sendBroadcast(mediaScanIntent);
    
    MediaScannerConnection.scanFile(this, 
                                    new String[]{imagePath},
                                    new String[]{"image/png"},
        new MediaScannerConnection.OnScanCompletedListener() {
            @Override
            public void onScanCompleted(String path, Uri uri) {
                Log.d(TAG, "scan complete " + path);
            }
        });
    
  • 我也重启了手机,还是不显示。

  • 在设置中,我启用了显示隐藏的相册,但它也没有显示。

当前分析:

  • 我认为图像本身没有问题,因为我可以通过文件管理器看到它。
  • 图像路径也应该正确,因为画廊应用程序中显示了一些图像。

笔记:

我看到有关此的论坛讨论,他们建议使用 3rd 方应用程序,例如重新扫描 SD 卡!但很明显,这不是我正在寻找的解决方案。

4

1 回答 1

0

试试这个 saveImage 并通知 Gallery

https://github.com/wuapnjie/StickerView/blob/master/sticker/src/main/java/com/xiaopo/flying/sticker/StickerUtils.java

于 2017-11-21T07:52:12.760 回答