Android 實(shí)現(xiàn)將Bitmap 保存到本地
Overview
圖片是一個(gè)可以使你程序變得比較的美觀(guān),所以我們會(huì)在我們的軟件中使用圖片。但是對(duì)于圖片的操作也是比較的復(fù)雜。今天,我們學(xué)習(xí)一下如是將我們的圖片保存到我們的本地。
開(kāi)發(fā)環(huán)境
Android Studio 3.6
Android 11
Mac OS 10.15
模擬機(jī) Google Pixel3 API R
然后學(xué)習(xí)一下如何來(lái)完成我們的功能
按照國(guó)際慣例,我們先來(lái)看一下我們的代碼:
/**
* Bitmap 幫助類(lèi)之一
*/
class BitmapUtils {
/**
* Save Bitmap
*
* @param name file name
* @param bm picture to save
*/
static void saveBitmap(String name, Bitmap bm, Context mContext) {
Log.d("Save Bitmap", "Ready to save picture");
//指定我們想要存儲(chǔ)文件的地址
String TargetPath = mContext.getFilesDir() + "/images/";
Log.d("Save Bitmap", "Save Path=" + TargetPath);
//判斷指定文件夾的路徑是否存在
if (!FileUtils.fileIsExist(TargetPath)) {
Log.d("Save Bitmap", "TargetPath isn't exist");
} else {
//如果指定文件夾創(chuàng)建成功,那么我們則需要進(jìn)行圖片存儲(chǔ)操作
File saveFile = new File(TargetPath, name);
try {
FileOutputStream saveImgOut = new FileOutputStream(saveFile);
// compress - 壓縮的意思
bm.compress(Bitmap.CompressFormat.JPEG, 80, saveImgOut);
//存儲(chǔ)完成后需要清除相關(guān)的進(jìn)程
saveImgOut.flush();
saveImgOut.close();
Log.d("Save Bitmap", "The picture is save to your phone!");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
這樣我們的寫(xiě)入方法就完成了,比較的簡(jiǎn)單的。
首相,我們需要獲取我們的軟件的根目錄。我們可以使用Context.getFilesDir()來(lái)獲取到軟件的根目錄,并且我需要保存到我們的images文件下方。
這樣獲取了我么的存儲(chǔ)路徑然后我們的需要判斷是不是首次使用,或者是該目錄是否存在,然后我們看一下如何來(lái)判斷我們的文件存在方法。
看一下源代碼:
class FileUtils {
/**
* 判斷指定目錄的文件夾是否存在,如果不存在則需要?jiǎng)?chuàng)建新的文件夾
* @param fileName 指定目錄
* @return 返回創(chuàng)建結(jié)果 TRUE or FALSE
*/
static boolean fileIsExist(String fileName)
{
//傳入指定的路徑,然后判斷路徑是否存在
File file=new File(fileName);
if (file.exists())
return true;
else{
//file.mkdirs() 創(chuàng)建文件夾的意思
return file.mkdirs();
}
}
}
我們?cè)谶@個(gè)方法中傳入指定的存儲(chǔ)路徑,然后判斷是否存在,如果存在我們需要?jiǎng)?chuàng)建我們的指定目錄,然后返回我們的創(chuàng)建結(jié)果。這樣我們的對(duì)目錄的操作就基本完成了。
完成對(duì)目錄的操作,我們?cè)诳聪氯绾瓮瓿晌覀兊拇鎯?chǔ)過(guò)程,我們需要?jiǎng)?chuàng)建一個(gè)FileOutputStream 來(lái)用于圖片的寫(xiě)入,并且我們需要對(duì)圖片進(jìn)行相對(duì)應(yīng)的壓縮操作。
并且我們的在最后需要清除我們相關(guān)的方法,這樣我們的地Bitmap的操作就基本完成了。比較簡(jiǎn)單。
以上這篇Android 實(shí)現(xiàn)將Bitmap 保存到本地就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 詳解Android Bitmap的使用
- android獲取圖片尺寸的兩種方式及bitmap的縮放操作
- Android 實(shí)現(xiàn)把bitmap圖片的某一部分的顏色改成其他顏色
- Android中的Bitmap序列化失敗的解決方法
- Android BitmapUtils工具類(lèi)使用詳解
- Android Bitmap的加載與緩存
- 詳解Android Bitmap的常用壓縮方式
- Android中的Bitmap的詳細(xì)介紹
- Android圖片處理工具類(lèi)BitmapUtils
- Android開(kāi)發(fā)中Bitmap高效加載使用詳解
- Android中Glide獲取圖片Path、Bitmap用法詳解
- Android Bitmap像素級(jí)操作詳解
相關(guān)文章
Android開(kāi)發(fā)實(shí)現(xiàn)文件存儲(chǔ)功能
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)實(shí)現(xiàn)文件存儲(chǔ)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
Android中斷并重啟一個(gè)Thread線(xiàn)程的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇Android中斷并重啟一個(gè)Thread線(xiàn)程的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Android監(jiān)聽(tīng)home鍵的方法詳解
這篇文章主要介紹了Android監(jiān)聽(tīng)home鍵的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android實(shí)現(xiàn)監(jiān)聽(tīng)home鍵的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-02-02
Android Kotlin的使用及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android Kotlin的使用及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android退出應(yīng)用最優(yōu)雅的方式(改進(jìn)版)
這篇文章主要介紹了Android退出應(yīng)用最優(yōu)雅的方式,改進(jìn)版,感興趣的小伙伴們可以參考一下2016-01-01
Android獲取當(dāng)前應(yīng)用分配的最大內(nèi)存和目前使用內(nèi)存的方法
今天小編就為大家分享一篇關(guān)于Android獲取當(dāng)前應(yīng)用分配的最大內(nèi)存和目前使用內(nèi)存的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
Android實(shí)現(xiàn)阿里云oss上傳流程解析
這篇文章主要介紹了Android實(shí)現(xiàn)阿里云oss上傳流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Android如何使用Bmob后端云實(shí)現(xiàn)失物招領(lǐng)功能
這篇文章主要介紹了Android如何使用Bmob后端云實(shí)現(xiàn)失物招領(lǐng)功能,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03

