在我的Android应用程序中,我想在库中保存位图,实际上可以使用下面的代码。唯一的错误是,当我在画廊中打开图像时,细节中创建的时间是错误的。并且说明图像在图库中的顺序不正确。
有人有想法吗? 非常感谢您的帮助
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
Bitmap combination = //get my bitmap!
//save in gallery
MediaStore.Images.Media.insertImage(exploreActivity.getContentResolver(),combination,"test_"+ timeStamp + ".jpg",timeStamp.toString());
这里是详细信息的打印屏幕:
答案 0 :(得分:11)
插入图片时需要定义DATE_TAKEN。这可以通过改变将图像添加到图库的方式来完成,并执行以下操作:
public static Uri addImageToGallery(Context context, String filepath, String title, String description) {
ContentValues values = new ContentValues();
values.put(Media.TITLE, title);
values.put(Media.DESCRIPTION, description);
values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DATA, filepath);
return context.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
}
如果您需要任何其他指示,我会看看MediaStore.Images.Media.insertImage
答案 1 :(得分:0)
您是否正确导入了课程java.util.Date
?也许自动导入从sql中获取了一个,常见的错误。
答案 2 :(得分:0)
对于那些追随我的人:系统会在您使用insertImage(...)
添加图像时生成图章,但仅在重新启动或刷新其他图片后生成。按照方法
Get filename and path from URI from mediastore与https://stackoverflow.com/a/5814533/2563422相结合,立即通知图库您存储的每个位图。