1. 程式人生 > >android 儲存Bitmap到本地圖片

android 儲存Bitmap到本地圖片

新增許可權

由於是對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/")));

        }