Android 實(shí)現(xiàn)將Bitmap 保存到本地
Overview
圖片是一個(gè)可以使你程序變得比較的美觀,所以我們會(huì)在我們的軟件中使用圖片。但是對(duì)于圖片的操作也是比較的復(fù)雜。今天,我們學(xué)習(xí)一下如是將我們的圖片保存到我們的本地。
開發(fā)環(huán)境
Android Studio 3.6
Android 11
Mac OS 10.15
模擬機(jī) Google Pixel3 API R
然后學(xué)習(xí)一下如何來完成我們的功能
按照國(guó)際慣例,我們先來看一下我們的代碼:
/** * Bitmap 幫助類之一 */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(); } } }}
這樣我們的寫入方法就完成了,比較的簡(jiǎn)單的。
首相,我們需要獲取我們的軟件的根目錄。我們可以使用Context.getFilesDir()來獲取到軟件的根目錄,并且我需要保存到我們的images文件下方。
這樣獲取了我么的存儲(chǔ)路徑然后我們的需要判斷是不是首次使用,或者是該目錄是否存在,然后我們看一下如何來判斷我們的文件存在方法。
看一下源代碼:
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ǔ)過程,我們需要?jiǎng)?chuàng)建一個(gè)FileOutputStream 來用于圖片的寫入,并且我們需要對(duì)圖片進(jìn)行相對(duì)應(yīng)的壓縮操作。
并且我們的在最后需要清除我們相關(guān)的方法,這樣我們的地Bitmap的操作就基本完成了。比較簡(jiǎn)單。
以上這篇Android 實(shí)現(xiàn)將Bitmap 保存到本地就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. 如何在jsp界面中插入圖片3. 詳解盒子端CSS動(dòng)畫性能提升4. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)5. css代碼優(yōu)化的12個(gè)技巧6. .NET6打包部署到Windows Service的全過程7. Ajax返回值類型與用法實(shí)例分析8. Vue element ui用戶展示頁(yè)面的實(shí)例9. asp批量添加修改刪除操作示例代碼10. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼
