gpt4 book ai didi

java - 保存在内部存储中的位图不会显示在图库中

转载 作者:行者123 更新时间:2023-12-02 04:12:50 25 4
gpt4 key购买 nike

我创建了一个简单的应用程序来将位图保存在内部存储中,并能够像任何其他图像一样在 Android 图库中显示该位图。

问题是:保存后它没有显示在图库中......而且我不知道我做错了什么。 (我正在模拟器上测试这个)

这是我处理位图保存的类。当我单击按钮保存位图时,在我的主要 Activity 中使用此 Saver 类。

public class Saver {

private Context mContext;
private String mNameOfFolder = "Storager";
private String mNameOfFile = "Quote";

public void saveImage(Context context, Bitmap imageToSave) {
mContext = context;

// Create the directory
File dir = mContext.getDir(mNameOfFolder, Context.MODE_PRIVATE);
String filePath = dir.getAbsolutePath();

// Get the current date and time to attach to the name of the image
String currentDateAndTime = getCurrentDateAndTime();

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

File file = new File(dir, mNameOfFile + currentDateAndTime + ".jpg");

try {
FileOutputStream out = new FileOutputStream(file);
imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out);

out.flush();
out.close();

galleryAddPic(file);

successSave();
} catch (FileNotFoundException e) {
Log.d("d", "file not found");
unableToSave();
} catch (IOException e) {
Log.d("d", "IO Exception");
unableToSave();
}
}

private void galleryAddPic(File file) {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.fromFile(file);
mediaScanIntent.setData(contentUri);
mContext.sendBroadcast(mediaScanIntent);
}

private String getCurrentDateAndTime() {
Calendar calendar = Calendar.getInstance();
// Setting format of the time
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
// Getting the formated date as a string
String formattedDate = dateFormat.format(calendar.getTime());

return formattedDate;
}

}

我什至添加了android开发者网站here提供的方法galleryAddPic()能够将图像添加到媒体提供程序的数据库,使其在 Android Gallery 应用程序和其他应用程序中可用。

最佳答案

第三方应用(包括 MediaStore)无法访问您应用的 internal storage 。如果您希望第三方应用程序能够访问该文件,请使用external storage .

另外,我不知道你为什么要在这里创建一个ContextWrapper。如果您有需要 Context 的方法(例如,当前代码中的 getDir()),请在传入的 Context 上调用它们你的方法。

关于java - 保存在内部存储中的位图不会显示在图库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620177/

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