android 儲存Bitmap到本地圖片
阿新 • • 發佈:2018-12-12
新增許可權
由於是對SD card進行操作,必不可少的就是為你的程式新增讀寫許可權,需要新增的內容如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
對這兩個許可權進行簡要解釋如下:
"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"-->允許掛載和反掛載檔案系統可移動儲存
"android.permission.WRITE_EXTERNAL_STORAGE"-->模擬器中sdcard中建立資料夾的許可權
呼叫該方法的時候只需要將Bitmap檔案傳入就可以啦。
// 指紋圖片存放路徑 public String sdCardDir = Environment.getExternalStorageDirectory() + "/fingerprintimages/"; /** * 儲存指紋圖片 * * @param bitmap */ private void saveBitmap(Bitmap bitmap) { try { File dirFile = new File(sdCardDir); if (!dirFile.exists()) { //如果不存在,那就建立這個資料夾 dirFile.mkdirs(); } File file = new File(sdCardDir, tmplName + ".jpg"); FileOutputStream fos = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 把檔案插入到系統圖庫 try { MediaStore.Images.Media.insertImage(this.getContentResolver(), file.getAbsolutePath(), fileName, null); } catch (FileNotFoundException e) { e.printStackTrace(); } // 通知相簿更新 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + "/sdcard/namecard/"))); }