安卓刷新图库

android 将图片和视频通知系统相册更新 【代码】android 将图片和视频通知系统相册更新。 阅读详情

参考1:http://stormzhang.com/android/2014/07/24/android-save-image-to-gallery/

参考2:http://bbs.youkuaiyun.com/topics/390629418


推荐解决方案:

//刷新图库
MediaScannerConnection.scanFile(context,
        new String[] { "/sdcard/Pictures/1.jpg" }, null,
        new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);
            }
        });

最近有些用户反映保存图片之后在系统图库找不到保存的图片,遂决定彻底查看并解决下。

Adnroid中保存图片的方法可能有如下两种:

  • 第一种是自己写方法,如下代码:
public static void saveImage(Bitmap bmp) {
    File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");
    if (!appDir.exists()) {
        appDir.mkdir();
    }
    String fileName = System.currentTimeMillis() + ".jpg";
    File file = new File(appDir, fileName);
    try {
        FileOutputStream fos = new FileOutputStream(file);
        bmp.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

以上代码便是将Bitmap保存图片到指定的路径/sdcard/Boohee/下,文件名以当前系统时间命名,但是这种方法保存的图片没有加入到系统图库中

  • 第二种是调用系统提供的插入图库的方法:
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "title", "description");

调用以上系统自带的方法会把bitmap对象保存到系统图库中,但是这种方法无法指定保存的路径和名称,上述方法的title、description参数只是插入数据库中的字段,真实的图片名称系统会自动分配。

看似上述第二种方法就是我们要用到的方法,但是可惜的调用上述第二种插入图库的方法图片并没有立刻显示在图库中,而我们需要立刻更新系统图库以便让用户可以立刻查看到这张图片。

  • 更新系统图库的方法
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));

上面那条广播是扫描整个sd卡的广播,如果你sd卡里面东西很多会扫描很久,在扫描当中我们是不能访问sd卡,所以这样子用户体现很不好,所以下面我们还有如下的方法:

    
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File("/sdcard/Boohee/image.jpg"))););

或者还有如下方法:

final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {     
    public void onMediaScannerConnected() {     
        msc.scanFile("/sdcard/Boohee/image.jpg", "image/jpeg");     
    }     
    public void onScanCompleted(String path, Uri uri) {     
        Log.v(TAG, "scan completed");     
        msc.disconnect();     
    }     
});

上面代码的图片路径不管是通过自己写方法还是系统插入图库的方法都可以很容易的获取到。

  • 终极完美解决方案

那么到这里可能有人又会问了,如果我想把图片保存到指定的文件夹,同时又需要图片出现在图库里呢?答案是可以的,sdk还提供了这样一个方法:

MediaStore.Images.Media.insertImage(getContentResolver(), "image path", "title", "description");

上述方法的第二个参数是image path,这样的话就有思路了,首先自己写方法把图片指定到指定的文件夹,然后调用上述方法把刚保存的图片路径传入进去,最后通知图库更新。

所以写了一个方法,完整的代码如下:

public static void saveImageToGallery(Context context, Bitmap bmp) {
    // 首先保存图片
    File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");
    if (!appDir.exists()) {
        appDir.mkdir();
    }
    String fileName = System.currentTimeMillis() + ".jpg";
    File file = new File(appDir, fileName);
    try {
        FileOutputStream fos = new FileOutputStream(file);
        bmp.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
	}
    
    // 其次把文件插入到系统图库
    try {
        MediaStore.Images.Media.insertImage(context.getContentResolver(),
				file.getAbsolutePath(), fileName, null);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    // 最后通知图库更新
    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));
}


stormzhang

07/24/2014


Android之通过Url保存图片集到本地并通知图库刷新 Android之通过Url保存图片集到本地并通知图库刷新 直接上代码 疑问联系774908055 public static boolean saveBitmaps(Context context,List<Bitmap> bitmaps, String rootPath) { LogUtil.LogShitou("创建PIC = " + rootPath); ... 阅读详情

相关推荐

Android图库中照片刷新性能优化措施

作者:Ting.wong          笔者对原生Gallery的UI做了修改后,测试时出现了图库内容刷新偏慢的问题,主要体现有如下2个主要问题: (1)    切换UI场景时容易闪烁; (2)    进入照片列表缩略图时刷新慢;   针对如上问题,通过分析对比新旧图库版本的代码,终有一番所得,特将分析解决方法记录下,作为他人及自己的备忘。 (1)实现上出现了一些重复刷新U

maetelibom的博客 1944

Android保存图片到系统图库

sg  最近有些用户反映保存图片之后在系统图库找不到保存的图片,遂决定彻底查看并解决下。 Adnroid中保存图片的方法可能有如下两种: 第一种是自己写方法,如下代码: public static File saveImage(Bitmap bmp) { File appDir = new File(Environment.getExternalStorageDir

TigerChain 的码之路 2274

关于安卓图库更新的问题终极解决方法(实测)

首先,有很多需求,我们要在应用中使用拍照,保存图片等功能,特别是需要自定义相册,或者从 布局控件中保存图片到本地相册的时候,及时更新相册就成了我们的问题。 首先,先来介绍几种能用的方法(以下代码作者都实测过) 第一种,比较远古的通过广播刷新图库 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("fi

CSAanan的博客 1万+

Android 保存图片到相册

Android 保存图片到相册

qq_27494201的博客 736

Android——为图片增加水印,并且保存到图库刷新

为图片增加水印我们可以通过canvas来绘制,首先我们新创建一个工具类: object WaterMarkHelper { fun createWaterMaskBitmap(context: Activity?, src: Bitmap, watermark: String, paddingLeft: Int, paddingTop: Int): Bitmap { /...

qq_39636109的博客 832

第 3 章 C++ 数据类型

本章系统介绍了C++中的数据类型体系,包括基本数据类型(整型、浮点型、字符型、布尔型)、固定宽度类型、空类型(void)及其应用场景。重点讲解了整数类型的有符号/无符号区别、字符类型特性、浮点类型精度问题、布尔类型底层实现,以及变量与常量的定义方式。此外,详细分析了隐式与显式类型转换机制,包括static_cast等四种强制转换操作符的使用场景和注意事项。每节配有综合案例和思考题,帮助读者深入理解数据类型的选择与转换原则。

杨充 1203

Android 保存图片、视频到本地,并且刷新系统图库

一、保存图片到本地并刷新系统图库 private void saveImg() { Glide.get(MainActivity.this).clearMemory(); Glide.with(MainActivity.this) .asBitmap() .load("http://p1.so.qhim...

qq_36158551的博客 1万+

Android 保存资源图片到相册最新写法适用于Android10.0及以上

一、首先在AndroidManifest.xml中加入权限 <!--读取存储卡中的内容 修改或删除存储卡中的内容--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 因为这属于危险权限,需要在java代码中动态申请。 二、activity_save_image.xml 布局一个要保存的图片,一个保存按钮 <?xml version="1.0" encoding="utf-

路宇的博客 8059

android 图库刷新,关于主动刷新Android系统图库方法总结

在项目中经常会要求用户选择图片来进行操作,但是安卓系统的图库应用却不会自动更新图库,比如调用系统相机进行拍照后将照片保存在自定义目录下。虽然图片成功保存在SD卡上,但是当你再次打开图库的时候却无法看到新拍照片。这是由于自己编写的应用没有更新图库数据库导致的。这里解决的方法有以下几个:1、4.0以下的版本可用调用系统挂载SD卡广播来进行图库更新,这种方法会使得图库应用重新扫描SD卡所有文件,如果图片...

weixin_42125192的博客 2580

stm32H743基于CubeMX配置为双ADC多通道DMA规则采样

stm32H743的ADC支持的最大频率为36MHz,有相关资料上说是可以超频,具体技术细节不多讨论。 需求: 使用stm32H743的ADC采集5路ovrc

xtqbp的博客 4361

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1066

关于主动刷新Android系统图库方法总结

在项目中经常会要求用户选择图片来进行操作,但是安卓系统的图库应用却不会自动更新图库,比如调用系统相机进行拍照后将照片保存在自定义目录下。虽然图片成功保存在SD卡上,但是当你再次打开图库的时候却无法看到新拍照片。这是由于自己编写的应用没有更新图库数据库导致的。这里解决的方法有以下几个:1、4.0以下的版本可用调用系统挂载SD卡广播来进行图库更新,这种方法会使得图库应用重新扫描SD卡所有文件,如果图片太

liangruimi的专栏 6253

FPGA设计中的扇出约束实战:从XDC到代码优化的全流程解析

本文全面解析FPGA设计中扇出约束的重要性与应用,详细介绍了从XDC约束文件设置到HDL代码优化的全流程实战技巧。通过MAX_FANOUT约束控制信号负载,结合寄存器复制和物理优化策略,有效解决高扇出导致的时序违例和布线拥塞问题,提升设计性能和可靠性。

nept的博客 796

Android 刷新系统图库

从网络上下载下来图片,打开图库以后看不到

mac090705的专栏 1146

IEEE ACCESS Please note that all author names should be listed in English.(所有作者名需用英文名列出)

很奇怪哈,我明明手稿和提交页面作者都是用的英文,但是为什么还是会提示我没用英文呢?后来给编辑发消息,回的很快,他给我发了一个截图,确实是出现中文,但是我还是不知道为啥会出现中文。直到晚上回寝室洗澡的时候忽然想起来了是不是orcid的原因,因为它会强制作者绑定一个orcid账号,而我的orcid账号的名字刚好是中文的。当然这个只是我的一个猜想,但是我觉得可能性很大。我的第二篇论文已经投稿了快三个月了,效果非常的不好,所以我打算转投IEEE ACCESS了,希望这里可以给我一点好的建议。

kuyecsl的博客 3309

超声波雷达探测车位及信号处理方法

在APA泊车中用到了超声波雷达,第一次接触,总结研究之。

周陽讀書 1229

安卓adb命令刷新图库

命令1刷新图片:adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/Pictures/xx.png 命令2刷新目录:adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///sdca

jimic0831的博客 6111

YOLOv11 改进 - 注意力机制 | LS-YOLO MSFE 多尺度特征提取模块:并行分支结构增强多尺度感知,优化遥感与小目标检测

本文介绍了一种用于滑坡检测的模型LS-YOLO及其在YOLOv11中的结合应用。LS-YOLO首先构建多尺度滑坡数据集MSLD,为模型训练提供丰富数据。设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块MSFE,充分提取滑坡特征信息。在解耦头中采用膨胀卷积增加模型感受野。我们将MSFE模块集成进YOLOv11,替换部分原有模块。实验表明,改进后的YOLOv11在数据集中表现出色 。

魔改工程师的博客 870

UNITY,保存图片到安卓本地后,刷新安卓本地图库

unity保存图片到本地后,自动在图库刷新显示

u012076537的博客 1346

信贷模型域——客户管理阶段模型(贷中模型)

本文主要探讨了信贷模型域中的客户管理阶段模型,重点聚焦于交叉销售模型。交叉销售模型不仅应用于贷中阶段,还贯穿于贷前、贷中、贷后全过程,其核心作用在于提升客户价值、增强客户粘性、降低流失率以及实现风险与收益的平衡。文中通过具体案例展示了交叉销售模型在现实业务中的应用,并指出其在贷中阶段的主要任务是提升存量客户价值、增加产品使用率,同时有效控制风险。

庄小焱 1879

车牌识别系统

随这图形图像技术的发展,现在的车牌识别技术准确率越来越高,识别速度越来越快。无论何种形式的车牌识别系统,它们都是由触发、图像采集、图像识别模块、辅助光源和通信模块组成的。车牌识别系统涉及光学、电器、电子控制、数字图像处理、计算视觉、人工智能等多项技术。触发模块负责在车辆到达合适位置时,给出触发信号,控制抓拍。辅助光源提供辅助照明,保证系统在不同的光照条件下都能拍摄到高质量的图像。图像预处理程序对抓拍的图像进行处理,去除噪声,并进行参数调整。然后通过车牌定位、字符识别,最后将识别结果输出。 牌照自动识别是一

FPGA/MATLAB学习教程/源码/项目合作开发 2万+

Android 刷新视图库——CoolRefreshView

Android 刷新视图库——CoolRefreshView 1. 项目基础介绍 CoolRefreshView 是一个开源的 Android 库,旨在为开发者提供一种简单的方式来实现下拉刷新功能。该项目主要使用 Java 编程语言开发。 2. 核心功能 支持任意View的刷新:不仅限于 ListView 或 RecyclerView,开发者可以为任何 View 添加下拉刷新功能。 支持自定义H...

gitblog_00356的博客 290

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android保存图片到系统图库并通知系统相册刷新

在android开发中保存应用的图片并插入到系统图库同时通知相册刷新的功能,做完后发现在部分手机上出现虽然图片保存成功了,但是相册却找不到图片的问题,查找文件夹图片也已经存在,可就是在相册里刷新不出来。

qq_36158551的博客 2453

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android通知动态图片,Android保存图片到系统图库并通知系统相册刷新

public static File saveImage(Bitmap bmp) {File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");if (!appDir.exists()) {appDir.mkdir();}String fileName = System.currentTimeMillis(...

weixin_35540825的博客 832

android通知图库更新创建时间,主动通知Android系统图库进行更新

该问题主要是存在于当我们下载图片后,再去遍历图片,会发现图库中,找不到我们刚下载好的相应图片。这就是因为android的机制是定时图库刷新图片,因此,当我们下载好的图片的时候,图库并不知道此时已经图库已经更新了,只有通知图库说,有新图片了,你刷新一下,它才会去查询新增了什么图片。项目中遇到调用图库进行图片的选择,因为不能主动及时更新,遂实现代码调用实现主动及时更新。废话不多刷,看代码。方式一,发送...

weixin_28700181的博客 643
上一篇: Android通过代码模拟物理、屏幕点击事件
下一篇: tensorflow项目构建流程
「已注销」
博客等级 码龄14年 116粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值