保存图片到相册时时间显示1970年以及部分手机会保存两张问题
问题1:关于时间显示1970年的问题,参看博客Android 图片保存到相册时间显示为1970的问题,它通过一个自定义方法getRealPathFromURI()来获取绝对地址,更新图库来解决这个问题,是有效的,但是仍然没有解决图片重复的问题。
问题2:关于保存两张图片的问题,参看博客Android调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题。通过几台机型测试发现,这个覆盖原生API的写法,既能解决问题2,同时解决了问题1,而且要简单很多。API插入方法:
MediaStore.Images.Media.insertImage(getContext().getContentResolver(),path_export, file_export.getName(), file_export.getName());
会在部分机型上自动生成一张缩略图,比如小米8(估计其他小米手机都有这个问题),于是深入inserImage源码:
发现保存图片的方法就是这个:
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, file_export.getAbsolutePath());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
Uri uri = this.getContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
而红框部分生成了缩略图,那么掉图中红框部分代码(生成缩略图功能)即可,以此来直接替换insertImage方法。
解决问题2中的方法应该是直接覆盖了那个图像内部的原始日期域DATE_TAKEN和DATE_ADDED。但是我并没有调用:
//将图片的拍摄时间设置为当前的时间
values.put(MediaStore.Images.ImageColumns.DATE_TAKEN, System.currentTimeMillis() )
values.put(MediaStore.Images.ImageColumns.DATE_ADDED, System.currentTimeMillis() )
也将时间正确改为了当前时间,这是为什么呢?
保存图片到相册时时间显示1970年以及部分手机会保存两张问题相关推荐
- MIUI打开相册怎么默认显示全部照片_小米手机让相册默认展示所有图片怎么设置?
问题:怎么可以将相册默认显示的图片,设置为显示所有呢? MIUI打开相册怎么默认显示全部照片? 小米k40,发现打开相册默认不显示全部照片,每次截图录屏后都不直接显示在照片里,得手动点到全部照片,很不 ...
- Android 保存图片到相册,相册里不显示
明明保存下来了,为什么进入相册时查看不到呢? 原来我们在保存成功后,还要发一个系统广播通知手机有图片更新,广播如下: Intent intent = new Intent(Intent.ACTION_ ...
- ios 保存图片到相册 崩溃_iOS保存图片闪退
问题描述 1.保存图片时调用了 UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)方法 2.个别测试机运行时APP闪退,XCode提示崩溃信息如下 ...
- 微信小程序--保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny
@wx.saveImageToPhotosAlbum 微信小程序–保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny 是否授权了保存功能 wx.openS ...
- 关于时间转换总是显示1970年的问题
今天遇到了一个奇怪的问题, long time = 1488606363; Date date = new Date(time); java.text.SimpleDateFormat sDateFo ...
- 电脑更新系统时间显示rpc服务器不可用,电脑系统时间同步更新时提示“RPC服务器不可用”解决办法...
电脑技巧 办公软件 在对电脑系统时间进行"自动与Internet时间服务器同步"的时候,一点击"立即更新",就会出现提示:"RPC服务器不可用&quo ...
- C#表格table时间显示年月日时分秒格式设置
C#表格table时间显示年月日时分秒格式设置 作者:张国军_Suger 开发工具与关键技术:Visual Studio 2015.C#..NET 在做C#项目是遇到的前端表格的时间处理问题,一般都是 ...
- 【优秀课设】51单片机LCD1602显示的温度控制系统设计 包括时间显示 校时、设置最值温度报警功能
1.将DS18B20温度传感器的温度读出来,并在LCD1602上显示出来. 2.在LCD上分别切换显示,软件设计时钟(时.分.秒),和当前温度值,和温度上下控制值.并可以通过按键进行修改设置,温度高于 ...
- uView使用Album 相册时,单张图片不显示问题
uView使用Album 相册时,单张图片不显示问题 html部分 <!-- 图片预览 --><view class="imgView" style=" ...
最新文章
- 沙市一中2021年高考成绩查询,2021年荆州高考状元名单公布,荆州文理科状元是谁多少分...
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别
- 什么?终止一个容器竟然用了 10 秒钟,这不能忍!
- markdown demo 学习
- [MySQL] 查询一段时间记录
- wince 6.0 设备管理器架构(Device Manager Architecture)
- boost::regex模块部分正则表达式相关的测试程序
- matlab中对伺服电机,基于Matlab的伺服电机Modbus通讯研究
- 2021年考计算机考研三战,2021考研的小伙伴有3条忠告一定要记得,这些都是历年实战经验...
- Java描述设计模式(15):责任链模式
- 8月第4周回顾:Delphi2009发布 CCIE增加英文面试
- c/c++教程 - 2.4.1 类和对象,封装,class和struct的区别,成员属性设为私有,类拆分成.h.c文件编写方法
- [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)...
- android launcher3 home页简易分析
- Centos7 安装字体库中文字体
- Git小乌龟汉化步骤
- 【Python】利用Python拟合函数曲线
- idea 安装jrebel6.4.3及破解
- VS2015调试程序
- torch.optim.SGD参数详解(除nesterov)