Android 图片存储到指定路径和相册的方法

我们在平常项目中,可能会存储一些头像,二维码之类的。这篇文章主要也是介绍自己在存储中会遇到的问题以及一些改进方案。

1.首先是长按保存:这个可以去参照网络上的,无非是自己先要拼接好一个文件路径。注意:IO流只能帮忙建文件,但是不能帮忙建目录(路径)。

// 先拼接好一个路径:在内存卡/或是手机内存上做好文件夹 String filePath = Environment.getExternalStorageDirectory()+savePath; File localFile = new File(filePath); if (!localFile.exists()) { localFile.mkdir(); }

2.引导具体的文件名和路径:

//拼接好文件路径和名称 File finalImageFile = new File(localFile, System.currentTimeMillis() + ".jpg"); if (finalImageFile.exists()) { finalImageFile.delete(); } try { finalImageFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); }

3.文件的读取:

FileOutputStream fos = null; try { fos = new FileOutputStream(finalImageFile); } catch (FileNotFoundException e) { e.printStackTrace(); } if (bitmap == null) { Toast.makeText(this, "图片不存在", 0).show(); return; } bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); try { fos.flush(); fos.close(); Toast.makeText(this, "图片保存在:"+ finalImageFile.getAbsolutePath(), 0).show(); } catch (IOException e) { e.printStackTrace(); }

4.对于图片,我们也希望存储在固定路径之后,希望也可以在相册中查看该图片。这是可以利用一个广播告诉相册有图片更新。

//发广播告诉相册有图片需要更新,这样可以在图册下看到保存的图片了 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(finalImageFile); intent.setData(uri); sendBroadcast(intent);

通过以上步骤: 我们可以在指定路径的文件夹和相册中查看存储好的图片了。

效果如下所示:

5.另外,虽然有吐司提示用户存储路径,但是也会找不到。其实,在用真机测试(不带SD卡),图片存储在手机自带内存==》ememed ==》图片所在。

6.存储SD卡,这类操作往往需要权限。所以,不要忘记在AndroidManifest中配置权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_OWNER_DATA" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-12-27 09:32:37

Android 图片存储到指定路径和相册的方法的相关文章

exception-java中读取文件提示找不到指定路径???

问题描述 java中读取文件提示找不到指定路径??? import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class FileCombine { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub FileManager afilemg = new Fi

Android调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保 存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, 100); 相机返回的数据通过下面的回调方法取得,并处理 @Override protected void onActivityResult(int re

C#读取指定路径的file文档,查找指定字符串并获取该字符串旁边的指定字符串

问题描述 C#读取指定路径的file文档,查找指定字符串并获取该字符串旁边的指定字符串 文件路径是abc.com.hkTraceFiles.手动输入文件名BCEG698121和80,83(组成字符串为80;83;)在文件路径里有两个名称是BCEG698121的文件但只有一个含有80:83:的字符串,找到80:83:所在的行后获取这两个字符串D174287W23和40:23:现在对我难点是名称包含BCEG698121的file文件有两个怎么遍历,如何找到80:83所在行,并获取其他两个字符串,求大

Android仿QQ、新浪相册的实现_Android

在移动应用中,很多时候都会用到图片选择.图片裁剪等功能.最近我也在准备一个开源的相册项目,以方便以后开发应用的时候使用,也尽可能的方便需要的人.一个完整的相册,应该包含相册列表.图片列表.图片的单选和多选.图片的裁剪.拍照.多选图片的大图预览等功能.这也是我这个项目将要包含的功能.在本篇博客中,将会讲述下我在这个项目中相册列表和图片列表的大致实现. 实现效果 结合几个常用的APP中的相册效果,当前项目中已经实现了一些基本的功能和UI,在后续完善的过程中还会有所变动.项目在Github上开源,欢迎

MTP协议问题:如何获得一个指定路径下的文件的ID

问题描述 本人需要一个简单的程序把一个指定文件从PC传输到Android设备(通过USB,使用MTP模式连接到PC).找了半天只在MSDN上找到一个C++版的文件传输示例程序:程序说明:https://msdn.microsoft.com/en-us/library/windows/desktop/dd389001(v=vs.85).aspx源码下载:https://code.msdn.microsoft.com/windowsdesktop/Portable-Devices-COM-API-f

Android获取SD卡路径及SDCard内存的方法

本文实例讲述了Android获取SD卡路径及SDCard内存的方法.分享给大家供大家参考.具体分析如下: 昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题.较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用

Android仿QQ、新浪相册的实现

在移动应用中,很多时候都会用到图片选择.图片裁剪等功能.最近我也在准备一个开源的相册项目,以方便以后开发应用的时候使用,也尽可能的方便需要的人.一个完整的相册,应该包含相册列表.图片列表.图片的单选和多选.图片的裁剪.拍照.多选图片的大图预览等功能.这也是我这个项目将要包含的功能.在本篇博客中,将会讲述下我在这个项目中相册列表和图片列表的大致实现. 实现效果 结合几个常用的APP中的相册效果,当前项目中已经实现了一些基本的功能和UI,在后续完善的过程中还会有所变动.项目在Github上开源,欢迎

IOS检测指定路径的文件是否存在

  本文给大家分享的是在IOS开发中检测指定文件是否存在的方法,给大家汇总了4种,十分实用,小伙伴们根据自己的需求自由选择吧. 代码如下: - (NSString *)dataPath:(NSString *)file { NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"badge"];

win7系统电脑连接U盘提示“指定路径不存在”怎么办

        win7系统电脑连接U盘提示"指定路径不存在"怎么办         1.打开U盘路径不存在会出现类似下面的弹窗信息; 2.解决步骤,开始菜单选择"运行"; 3.在运行框中输入"cmd"并单击回车; 4.在cmd窗口中输入"chkdsk g: /X /F"(其中的g为U盘所在磁盘,根据实际情况作出修改).按回车键即可.