android照片如何查看时间,Android 如何改变图片的拍摄时间

起源

项目经理提出一个需求:把图片放入Camera(Android 相册目录)目录下,并且让其显示在最前面。

思路

把图片放置到Camera目录并且让其相册可以查看到倒不难,关键代码如下

......

String path = Environment.getExternalStorageDirectory().getPath();

File cameraFile = new File(path+"/DCIM/Camera" , files[i].getName());//图片放置到该目录下

......

MediaStore.Images.Media.insertImage(this.getContentResolver(),cameraFile.getAbsolutePath(),files[i].getName(),null);

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+cameraFile.getPath())));

关于图片排序的问题,我使用华为手机测试图片排序是按照拍摄的时间排序的,所以想到的是修改照片的拍摄时间

注意:这里默认手机相册的文件夹为DCIM/Camera 市面上大多数手机的默认相册目录为该目录,也存在一些机型不是的

但是这里遇到一个问题:有的图片拍摄时间比较早比如2008:01:01 09:11:22,导入到相册里排在最后面了。

网上的坑

有的博客说使用ExifInterface 修改TAG_DATETIME就可以了,但是试过,修改之后里面读取可以生效,但是下次读取还是之前的时间,说明还是没有写进去

解决

还是使用ExifInterface 修改的不是TAG_DATETIME 而是TAG_DATETIME_ORIGINAL就OK了

注意:有的图片获取到的TAG_DATETIME为Null,这时可以不处理,图片默认也是排在最前面的

关键代码

DateFormat dateFormat = new SimpleDateFormat("yyyy:MM:dd hh:mm:ss");

String format = dateFormat.format(date);

exifInterface.setAttribute(ExifInterface.TAG_DATETIME_ORIGINAL, format);

exifInterface.saveAttributes();

注意:ExifInterface.TAG_DATETIME_ORIGINAL需要在Android 6.0以上(api 24)才支持。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值