Android 实现将Bitmap 保存到本地
Overview
图片是一个可以使你程序变得比较的美观,所以我们会在我们的软件中使用图片。但是对于图片的操作也是比较的复杂。今天,我们学习一下如是将我们的图片保存到我们的本地。
开发环境
AndroidStudio3.6
Android11
MacOS10.15
模拟机GooglePixel3APIR
然后学习一下如何来完成我们的功能
按照国际惯例,我们先来看一下我们的代码:
/**
*Bitmap帮助类之一
*/
classBitmapUtils{
/**
*SaveBitmap
*
*@paramnamefilename
*@parambmpicturetosave
*/
staticvoidsaveBitmap(Stringname,Bitmapbm,ContextmContext){
Log.d("SaveBitmap","Readytosavepicture");
//指定我们想要存储文件的地址
StringTargetPath=mContext.getFilesDir()+"/images/";
Log.d("SaveBitmap","SavePath="+TargetPath);
//判断指定文件夹的路径是否存在
if(!FileUtils.fileIsExist(TargetPath)){
Log.d("SaveBitmap","TargetPathisn'texist");
}else{
//如果指定文件夹创建成功,那么我们则需要进行图片存储操作
FilesaveFile=newFile(TargetPath,name);
try{
FileOutputStreamsaveImgOut=newFileOutputStream(saveFile);
//compress-压缩的意思
bm.compress(Bitmap.CompressFormat.JPEG,80,saveImgOut);
//存储完成后需要清除相关的进程
saveImgOut.flush();
saveImgOut.close();
Log.d("SaveBitmap","Thepictureissavetoyourphone!");
}catch(IOExceptionex){
ex.printStackTrace();
}
}
}
}
这样我们的写入方法就完成了,比较的简单的。
首相,我们需要获取我们的软件的根目录。我们可以使用Context.getFilesDir()来获取到软件的根目录,并且我需要保存到我们的images文件下方。
这样获取了我么的存储路径然后我们的需要判断是不是首次使用,或者是该目录是否存在,然后我们看一下如何来判断我们的文件存在方法。
看一下源代码:
classFileUtils{
/**
*判断指定目录的文件夹是否存在,如果不存在则需要创建新的文件夹
*@paramfileName指定目录
*@return返回创建结果TRUEorFALSE
*/
staticbooleanfileIsExist(StringfileName)
{
//传入指定的路径,然后判断路径是否存在
Filefile=newFile(fileName);
if(file.exists())
returntrue;
else{
//file.mkdirs()创建文件夹的意思
returnfile.mkdirs();
}
}
}
我们在这个方法中传入指定的存储路径,然后判断是否存在,如果存在我们需要创建我们的指定目录,然后返回我们的创建结果。这样我们的对目录的操作就基本完成了。
完成对目录的操作,我们在看下如何完成我们的存储过程,我们需要创建一个FileOutputStream来用于图片的写入,并且我们需要对图片进行相对应的压缩操作。
并且我们的在最后需要清除我们相关的方法,这样我们的地Bitmap的操作就基本完成了。比较简单。
以上这篇Android实现将Bitmap保存到本地就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。