gpt4 book ai didi

java - 如何在 Android 应用程序的图库中显示保存的照片

转载 作者:行者123 更新时间:2023-12-02 11:01:37 24 4
gpt4 key购买 nike

我保存图片并在文件管理器中查看,但在我的图库中看不到?如何修复?

我认为我的错误在于Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyFolder";

String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyFolder";
File dir = new File(file_path);

if(!dir.exists())
{
dir.mkdirs();
}

String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()).concat(".png");
File file = new File(dir, name);

FileOutputStream fOut;
try {
fOut = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();

return Uri.fromFile(file);
} catch (Exception e) {
e.printStackTrace();
}

return null;

最佳答案

您必须将其添加到 MediaStore 才能使其显示在图库中。以下代码适用于我(将其放在您编写文件的现有代码之后),以使用您自己的自定义描述等手动添加文件...

我把它保存在这里:

String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
String path = dir + "/" + filename;

使用与您拥有的代码非常相似的代码,然后将其添加到 MediaStore 中:

long size = new File(path).length();
long currentTime = System.currentTimeMillis();

ContentValues values = new ContentValues(8);
String mimeType = "image/png";
String fileDescription = "My description";

// store the details
values.put(MediaStore.Images.Media.TITLE, name);
values.put(MediaStore.Images.Media.DISPLAY_NAME, name);
values.put(MediaStore.Images.Media.DATE_ADDED, currentTime);
values.put(MediaStore.Images.Media.MIME_TYPE, mimeType);
values.put(MediaStore.Images.Media.DESCRIPTION, fileDescription);
values.put(MediaStore.Images.Media.ORIENTATION, 0);
values.put(MediaStore.Images.Media.DATA, path);
values.put(MediaStore.Images.Media.SIZE, size);

try {
context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}
catch(Exception e) {
e.printStackTrace();
}

关于java - 如何在 Android 应用程序的图库中显示保存的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51295495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com