Android --- 调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题
开发中我们有时候需要将app中的图片导出到相册,调用系统提供的
MediaStore.Images.Media.insertImage
方法可以达到我们的目的,但是会发现在相册中生成了两张内容一样的图片,一张是以我们设置的命名方式命名的(具体步骤可以查看insertImage用法),另一张则是系统帮我们生成的根据当前时间命名的缩略图。
查看insertImage的源码,我们发现保存图片其实是通过以下代码做到的:
ContentValues values = new ContentValues();values.put(MediaStore.Images.Media.DATA, file_export.getAbsolutePath());values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");Uri uri = context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
后面的代码则是生成缩略图用的,那么我们在使用的时候剥离出这部分我们需要的代码即可,也就是在原来使用
MediaStore.Images.Media.insertImage(getContext().getContentResolver(),path_export, file_export.getName(), file_export.getName());
的地方,使用以下代码替换它就行了:
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);
当然,最后别忘了发送广播提醒系统检索我们导出的图片,否则不会显示:
getContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path_export)));//path_export是你导出的文件路径
Android --- 调用MediaStore.Images.Media.insertImage保存图片时生成两张图片的问题相关推荐
- MediaStore.Images.Media.insertImage保存图片
MediaStore.Images.Media.insertImage保存图片会生成了两张内容一样的图片,一张是以我们设置的命名方式命名的(具体步骤可以查看insertImage用法),另一张则是系统 ...
- MediaStore.Images.Media.insertImage(getContentResolver(), destMap, null, null)出现空指针问题
在bitmap转uri 的时候 在转化的时候的时候出现空指针问题. 开始的代码为 Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(get ...
- android 调用系统相机拍照 获取原图
博客源址:android 调用系统相机拍照 获取原图 博客时间:2013-04-23 11:08 好吧,为了这个问题又折腾了一整天.之前在网上找来的方法,如果在onActivityResult中直接用 ...
- Android 调用系统裁剪,适配11和12及手机
前言:发现Android 调用系统裁剪时,在各Android 版本出现各种问题,踩了一堆坑,做一下总结,免得以后忘记 后面会有完整裁剪代码 1,一加手机报错 intent.putExtra(" ...
- 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!
一.序 Hi,大家好,我是承香墨影! App 内,创建一个文件并保存文件到本地的需求,是很常见的 I/O 操作.而如果这个文件变成了一张图片,那你涉及到的就不仅仅是一个 I/O 操作了,还需要考虑如何 ...
- android 调用原生相机
GitHub public class MeFragment extends BaseFragment implements View.OnClickListener {private String ...
- Android调用系统相机程序
一.请求相机功能 声明你的应用依赖于相机,请在清单文件中添加 uses-feature 代码: <manifest ... ><uses-feature android:name=& ...
- android+代码调用+相册+小米,Android调用系统相册选择图片,支持小米4云相册
用小米4调用系统相册选择照片时,如果云相册功能开启的话.云相册中的图片也会显示在选择列表中.经过测试,选择到云相册中的图片的话,uri的scheme是file,而不再试content.本文支持云相册的 ...
- android微信自定义分享代码,android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...
最终的效果图,右下角微信多图为自定义调用系统分享,分享到微信. 在你能正常调用share sdk的时候想在原本的基础上加自定义的分享非常的简单. 它的官网已经给出了代码,但是给的不是很清楚. lz毕竟 ...
最新文章
- mac远程redis_MAC安装redis
- Confluence 6 为发送邮件配置服务器
- Condition总结-await和signal的总结
- elasticsearch说了一些了,这次说说Solr【入门Solr这篇就够了】
- java反射main方法参数注意
- 转载:redis备份策略
- angularjs指令(一)
- Show一下2008新技术体验活动的奖品
- spring的beanDefinition是什么
- 多维向量空间中点到线的距离公式
- GAMES101-现代计算机图形学入门-闫令琪——Lecture 18 Advanced Topics in Rendering
- C语言圆角矩形画法,GDI+ 如何绘制圆角矩形(vc++)
- 怎么学计算机自学,自学经验:如何学习计算机知识
- 哪个版本的linux适合个人主机,2020年适合个人使用的Linux发行版推荐TOP5
- 立创EDA的元件库导入AD
- python制作猫和老鼠游戏我觉得可以学一手@
- 修改 Zotero 参考文献格式
- CSS初始化(科普)
- Github每日精选(第21期):开源文件同步syncthing
- java日期格式化yyyy-mm-dd