android 保存图片(视频)到相册
概述
此功能麻烦的地方主要在机型适配上。
此功能实现步骤如下:
- 将图片存储到手机picture目录下。(一般是从原位置复制过来)
- 将该文件扫描到相册。
本文的例子是将应用自带的内容存储到picture目录。
笔者看到目前市场上一些app有直接存储到DCIM目录下的。也是可行的,但是笔者个人认为最好还是只有相机相关功能生成的图片与视频存储到该目录下,否则就用户体验来讲可能会让人比较奇怪。
另外,不同目录在不同手机 ”相册“中的表现也有所区别,仅拿小米手机举例:picture目录中存储的内容可以再相册的”最近“中看到,而"DCIM/Camera"中存储的内容只能在相册的”相机“中看到。
源码
public class ImageUtils {//在picture目录下新建一个自己文件夹private static final String rootPath =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/appname";/*** 这个方法用来把已经存在的一个文件存储到相册* * @param context 用来发送广播* @param srcString 需要拷贝的文件的地址*/public static void saveFileToAlbum(Context context, String srcString) {if (TextUtils.isEmpty(srcString)) {return;}File srcFile = new File(srcString);if (!srcFile.exists()) {return;}//如果root文件夹没有需要新建一个createDirIfNotExist();//拷贝文件到picture目录下File destFile = new File(rootPath + "/" + srcFile.getName());copyFile(srcFile, destFile);//将该文件扫描到相册MediaScannerConnection.scanFile(context, new String[] { destFile.getPath() }, null, null);}public static void createDirIfNotExist() {File file = new File(rootPath);if (!file.exists()) {try {file.mkdirs();} catch (Exception e) {e.printStackTrace();}}}public static void copyFile(File src, File dest) {if (!src.getAbsolutePath().equals(dest.getAbsolutePath())) {try {InputStream in = new FileInputStream(src);FileOutputStream out = new FileOutputStream(dest);byte[] buf = new byte[1024];int len;while ((len = in.read(buf)) >= 0) {out.write(buf, 0, len);}in.close();out.close();} catch (IOException e) {e.printStackTrace();}}}
}
发送广播扫描相册
笔者也使用过使用广播扫描相册的方式。
实际使用的时候会出现相册刷新不及时,在个别机型上没有刷新的问题,于是最终还是采用了上面的做法。
使用广播扫描相册可以扫描某个目录下的所有文件,而上面demo中的做法是只扫描某个文件。
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(new File(rootPath));intent.setData(uri);context.sendBroadcast(intent);
部分vivo手机的问题
部分vivo手机的视频只有存储在”相机“目录下的时候才会刷新生效。
笔者碰到这个问题的处理逻辑如下:
- 先判断是否是vivo手机
- 如果是vivo手机,那么将视频在”相机“目录多拷贝一份,也多做一次刷新逻辑。
android 保存图片(视频)到相册相关推荐
- android 6.0获取图片地址,Android应用开发Android 保存图片到系统相册(三星6.0有效)...
Android 保存图片到系统相册(三星6.0有效).今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下 ...
- android 系统相册 多远,【系统相册】Android 保存图片到系统相册
保存完图片后,可以在内存设备的文件系统相册目录下看到对应图片(以小米手机为例,系统相册的路径为:/storage/emulated/0/DCIM/Camera).但是,使用系统图库无法马上看到该图片, ...
- Android保存图片到系统相册
先说一下思路,我是这样做的,先保存一张图片到可写路径下,用cocos2d的节点截屏功能,保存之后就可以 保存Bitmap到本地指定路径下 ,然后通过广播,通知系统相册图库刷新数据. 先说如何节点截屏: ...
- android 11及以上保存图片视频到相册
Android 10之前版本主要步骤 请求读写权限 图片/视频下载到/storage/emulated/0/Android/data/包名/xxx 复制到系统相册目录下 扫描媒体库 Android 1 ...
- Android 保存图片到手机相册
有一种很常见的需求,当保存图片的时候,客户需要在相册里面看到那张图片.有时候确实是保存成功了(通过IO流将图片写入了SDCard),但打开相册却看不到那张图片,需要在文件管理软件上才能找到那张图片,在 ...
- android 保存图片到手机相册,并通知相册刷新
保存图片到相册 项目中我们经常用到,将图片保存至手机相册,并通知相册及时刷新,展示图片. 只需将代码复制至图片工具类,直接使用即可: /*** 保存图片到图库* @param context* @pa ...
- Android保存图片到手机相册(res下的图片,网络图片都可以)
今天主要说的是把图片保存到本地相册, 一.主要思路: 将一张图片,无论是本地图片还是网络图片先转成Bitmap格式,再调用方法保存到相册中 二.开发过程中可能会遇到的问题: 1:保存成功了,但图库不显 ...
- Android保存图片到本地相册
好久没有写东西了.备份下知识吧.免得忘记了 . 首先贴一段代码 -- 这个是先生成一个本地的路径,将图片保存到这个文件中,然后扫描下sd卡.让系统相册重新加载下 .缺点就是只能保存到DCIM的文 件 ...
- android保存图片到系统相册及图库更新
public static void saveImageToGallery(Context context, Bitmap bmp) { // 首先保存图片 File appDir = ...
- android保存图片至系统相册
0. 写在前面 最近需要做这个功能,然后在网上找了下资料,这篇博文不错,写的比较全而且比较清楚,自己也试了,没问题,转载过来,下次还要用不用再找了! 转载自http://blog.csdn.net/x ...
最新文章
- _matroska_decode_buffer in
- 二叉树查找python_二叉搜索树的python实现
- C# WinForm开发系列 - DataGridView
- Ansible中文权威指南
- leetcode 435. 无重叠区间
- 《Java技术》第八次作业
- 高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市
- redis数据结构存储Linked List设计细节(redis的设计与实现笔记)
- vim 命令整理(自己常用)
- 2022年湖南省初级审计师考试模拟题及答案
- 愚人节html源码,开源中国愚人节网页变模糊的js blur代码
- JavaScript使用url字符串拼接传递参数,截取参数
- 1093. 大样本统计-正常统计
- 5个省,7大 “5G+智能电网” 落地应用案例!
- imToken 2.7.2,你的 Eth2「入场券」待领取
- Javascript迭代、递推、穷举、递归常用算法实例讲解
- js 阻止移动端横屏工具方法
- 【前端】CSS(十一)PC端品优购项目(下)
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 I 二数(模拟)
- 万卷书 - 欧洲的门户[The Gates of Europe]
热门文章
- IOS9禁用UIWebView的放大镜
- 制作elasticsearch 镜像_相册视频制作-相册视频制作App下载-
- Android 中的 NDK 到底是什么?(详细解析+案例实战)
- SUS铝合金复合金属的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Scenario 3 – HP C7000 Virtual Connect FlexFabric SUS with Active/Active
- ta点读笔客户端_点读笔到底哪支好?12款点读笔评测:看完不再稀里糊涂
- 「硬见小百科」电子器件封装缺陷和失效的形式
- EOS测试链加入流程(代码版本与主网同步)
- JAXWS CXF GlobalWeather + MyEclipse + Maven + Dom4j Byron自學視頻05
- php int 32 64,php从32位升级到64位需要注意的几点