Android相机拍照后在系统gallery中看不到的解决办法
来源:互联网 发布:创维云电视软件下载 编辑:程序博客网 时间:2024/05/16 09:58
首先要感谢一下此文作者,这篇文章对我的启发很大。
http://blog.csdn.net/xiaanming/article/details/8990627 (解决Android拍照保存在系统相册不显示的问题)
刚开始的时候,我按照上文的办法试了一下,发现在android 4.0.3 AVD模拟器中是可以在系统相册中查看照片的,但是我的android 2.2系统手机却不可以。经过一番努力,找到了以下几个关键点。希望可以帮助有同样困难的朋友。
首先,我们需要将拍摄的照片保存在一个File中,File的地址就是最终存储在SDcard上的位置
String fileName = new String(System.currentTimeMillis() + "HYN"); //设置要保存的文件名File file = new File(Environment.getExternalStorageDirectory() + "/picture/", fileName + ".jpg"); //新建File,我将创建地址设置在sdcaid中的picture文件夹下FileOutputStream fileOS = new FileOutputStream(file); //新建FileOutputStream,将输出目标设置成file文件的位置,表示输出给filebitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOS) //将bitmap设置为输出源,并设置输出格式和品质fileOS.flush(); //正式输出文件fileOS.close(); //输出文件完成后要关闭输出流
至此,照片已经存入了SDcard,地址就是file中指定的地址,但是系统的图库(或称 gallery)还看不到图片,我们需要发一条通知。代码如下。
Intent intent = new Intent(); //新建一个Intent,用来发广播Uri uri = Uri.fromFile(file); //新建一个Uri,使用file的地址intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); //设置intent的action,这条action表示要将数据添加进系统的媒体资源库/*gallery中显示照片全是在这个资源库中找到的,换句话说,我们需要存进去正确的文件地址才可以在gallery中显示出来,否则即使文件存在在SDcard上gallery也不知道它。*/intent.setData(uri); //指定存入资源库的数据,就是我们照片文件的地址sendBroadcast(intent); //发布广播。使用MainActivity.this.sendBroadcast(intent);也可以
这样看来,让图库看到文件还是很容易的。不过需要注意的就是在uri中添加文件地址的时候一定不要图省事填一个bitmap的地址,一定要使用file的地址,也就是存在哪里就填哪里的地址。本文开头提到的文章中作者提出了一个下面这个函数,按官网说法是用来插入bitmap到媒体库中并返回新建文件的地址,总之我试过之后,结果返回的不是实际文件存在的地址,也就是说这个函数的返回值对我们来说也是没用的。实际上我试验发现这句话不写并不影响拍照和照片的显示。
MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
本文到此结束,希望可以给大家一些启发。刚学编程,有说的不对的地方欢迎大家来喷。呵呵。
0 0
- Android相机拍照后在系统gallery中看不到的解决办法
- 解决Android调用系统相机拍照后相片无法在相册中显示问题
- 关于android 调用系统相机后activity被销毁后 拍照数据丢失的解决 特别适用于多张拍照
- DDMS中看不到Devices的解决办法
- Android调用系统相机拍照后不进入预览确认
- android调用系统相机拍照后对相片进行裁剪
- Android中三星调用系统相机拍照后旋转的问题
- 上传的文件(图片)在Eclipse中能看到,在浏览器中看不到的解决办法
- iOS10 调用系统相机拍照后黑屏的问题
- 启动Android模拟器后,在file Explorer中看不到任何文件
- 启动Android模拟器后,在file Explorer中看不到任何文件
- android之系统相机拍照
- android 调用系统相机拍照
- android调用系统相机拍照
- android调用系统相机拍照
- Android调用系统相机拍照
- Android 调用系统相机拍照
- Android 调用系统相机拍照
- lua中table的使用
- SQL 清日志
- ss
- UI组件缩放和旋转
- UiButton操作
- Android相机拍照后在系统gallery中看不到的解决办法
- one-to-one双向关联之加载
- 【C++学习】迭代器的使用:vector的操作---ShinePans
- uml 9种图之序列图
- XMLPULL解析(2)---通过对象序列化生成XML文档
- tomcat的一些设置
- fckeditor编辑器的使用
- 程序员必看的那些电影
- MySQL Vs PostgreSQL 2