android保存图片到本地并可以在相册中显示出来
2016-06-28 09:42
441 查看
<p style="border-width: 0px; padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; font-family: 宋体; line-height: 28px; background-color: rgb(249, 249, 249);"><span style="font-size:24px;color:#ff0000;">方法1:</span></p><p style="border-width: 0px; padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; background-color: rgb(249, 249, 249);">保存图片很简单,方法如下:</p><p style="border-width: 0px; padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 8px; list-style: none; text-indent: 2em; color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; background-color: rgb(249, 249, 249);">/** 首先默认个文件保存路径 */ private static final String SAVE_PIC_PATH=Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED) ? Environment.getExternalStorageDirectory().getAbsolutePath() : /mnt/sdcard;//保存到SD卡 private static final String SAVE_REAL_PATH = SAVE_PIC_PATH+ /good/savePic;//保存的确切位置</p>
下面就是保存的方法,传入参数就可以了:
public static void saveFile(Bitmap bm, String fileName, String path) throws IOException { String subForder = SAVE_REAL_PATH + path; File foder = new File(subForder); if (!foder.exists()) { foder.mkdirs(); } File myCaptureFile = new File(subForder, fileName); if (!myCaptureFile.exists()) { myCaptureFile.createNewFile(); }www.2cto.com BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); bm.compress(Bitmap.CompressFormat.JPEG, 80, bos); bos.flush(); bos.close(); }
这样就保存好了,可是有的时候明明保存下来了,为什么进入相册时查看不到呢?反正我是遇到这样的问题的,原来我们在保存成功后,还要发一个系统广播通知手机有图片更新,广播如下:
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
context.sendBroadcast(intent);//这个广播的目的就是更新图库,发了这个广播进入相册就可以找到你保存的图片了!,记得要传你更新的file哦
----------------------------------------------------------------------------------------------------------------------------------
方法2
<span style="font-size:14px;">/** 保存方法 */ public void saveBitmap() { Log.e(TAG, "保存图片"); File f = new File("/sdcard/namecard/", picName); if (f.exists()) { f.delete(); } try { FileOutputStream out = new FileOutputStream(f); bm.compress(Bitmap.CompressFormat.PNG, 90, out); out.flush(); out.close(); Log.i(TAG, "已经保存"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } </span>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
相关文章推荐
- Android 图片显示及适配的总结(一)
- Android初尝甜果之MVP模式
- Android---程序锁(1)展示页面的搭建
- Android社交系统----界面预览
- picasso-强大的Android图片下载缓存库
- Android中关于JSON相关应用分析
- Android studio 修改项目包名
- Android 控制屏幕全屏,标题栏,导航栏,布局属性
- 【Android 自定义控件】TextView的drawable与text一起居中
- Android Studio导入Android源码/调试framework的教程
- Android快速开发之设计通用的ListView,GridView的适配器
- Android注解使用之BufferKnife 8.0注解使用介绍
- Android实现在列表List中显示半透明小窗体效果的控件用法详解
- Android JNI原理分析
- PhotoView 源码解读
- Android Broadcast广播机制分析
- Android系统启动-zygote篇
- Android系统启动-init篇
- 程序猿必知 — Android Support Library 23.2
- Android 在View中更新View