1. 程式人生 > >Android 開發圖片儲存在本地

Android 開發圖片儲存在本地

  /**
     * 圖片儲存到本地 方法2
     *
     * @param bitmap
     */
    public static void compressImagetwo(Bitmap bitmap) {
        try {
            String newPath = Environment.getExternalStorageDirectory() + "/" + System.currentTimeMillis()+ ".jpg";
            FileOutputStream fileOutputStream = new FileOutputStream(newPath);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
            fileOutputStream.flush();
            fileOutputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
/**
     * 圖片儲存到本地 方法1 速度比方法2速度快  jpg 格式可以顯示
     * @param bitmap
     */
    public static File compressImage(Bitmap bitmap) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//質量壓縮方法,這裡100表示不壓縮,把壓縮後的資料存放到baos中
        File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");

        try {
            FileOutputStream fos = new FileOutputStream(file);
                fos.write(baos.toByteArray());
                fos.flush();
                fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
       // recycleBitmap(bitmap);
        return file;
    }
    //圖片釋放

    public static void recycleBitmap(Bitmap... bitmaps) {
        if (bitmaps==null) {
            return;
        }
        for (Bitmap bm : bitmaps) {
            if (null != bm && !bm.isRecycled()) {
                bm.recycle();
            }
        }
    }

注意:

1、新增許可權:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2、現在智慧手機經常把你的APP許可權變成不可讀寫。如果儲存不成功。那麼你去安全管家,許可權管理裡看看是不是不讓寫了。是的話開啟就好了