频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
android开发实现保存图片到本地并可以在相册中显示出来
2017-11-04 09:57:32      个评论    来源:xj_love_ch的博客  
收藏   我要投稿

android开发实现保存图片到本地并可以在相册中显示出来。

1. 需求分析

app应用是越来越人性化:界面优美,服务多样化,操作还非常方便。比如我们在用app的时候,发现上面有比较的图片想保存到手机,只要点一点app上提供的保存按钮就可以了。那这个图片保存到本地怎么实现的呢?

2. 保存图片很简单,方法如下:

a. 首先默认个文件保存路径

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;//保存的确切位置
下面就是保存的方法,传入参数就可以了:
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();
}

b. 这样就保存好了,可是有的时候明明保存下来了,为什么进入相册时查看不到呢?反正我是遇到这样的问题的,原来我们在保存成功后,还要发一个系统广播通知手机有图片更新,广播如下:

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
context.sendBroadcast(intent);//这个广播的目的就是更新图库,发了这个广播进入相册就可以找到你保存的图片了!,记得要传你更新的file哦
点击复制链接 与好友分享!回本站首页
上一篇:android开发中屏幕分辨率获取教程
下一篇:Android8.0开发中适配问题解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站