Android將圖片保存至SD卡上

cwf8 9年前發布 | 3K 次閱讀 Java Android

首先判斷SD卡是否插入-->

public String getSDPath(){
            File SDdir=null;
            boolean sdCardExist=
Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
            if(sdCardExist){
                    SDdir=Environment.getExternalStorageDirectory();
            }
            if(SDdir!=null){
                    return SDdir.toString();
            }
            else{
                    return null;
            }
    }
 
然后創建文件夾-->

public void createSDCardDir(){
            if(getSDPath()==null){
                    Toast.makeText(PicSharesActivity.this, "未找到SD卡", 1000).show();
            }else{
                        if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
                            // 創建一個文件夾對象,賦值為外部存儲器的目錄
                             File sdcardDir =Environment.getExternalStorageDirectory();
                           //得到一個路徑,內容是sdcard的文件夾路徑和名字
                             newPath=sdcardDir.getPath()+"/***app/tempImages/";//newPath在程序中要聲明
                             File path1 = new File(newPath);
                            if (!path1.exists()) {
                             //若不存在,創建目錄,可以在應用啟動的時候創建
                             path1.mkdirs();
                             System.out.println("paht ok,path:"+newPath);
                           }
                     }
                     else{
                      System.out.println("false");
                    }
            }
        }
創建好文件夾之后就可以保存圖片了-->

public void saveMyBitmap(String bitName,int percent) throws IOException {

            Bitmap bmp = drawable2Bitmap(picView.getDrawable());//這里的drawable2Bitmap方法是我把ImageView中 的drawable轉化成bitmap,當然實驗的時候可以自己創建bitmap
        File f = new File(newPath + bitName + ".jpg");
        f.createNewFile();
        FileOutputStream fOut = null;
        try {
                fOut = new FileOutputStream(f);        
                } catch (FileNotFoundException e) {        
                e.printStackTrace();
        }
        bmp.compress(Bitmap.CompressFormat.JPEG, percent, fOut);
        try {
                fOut.flush();
        } catch (IOException e) {
                e.printStackTrace();
        }
        try {
                fOut.close();
        } catch (IOException e) {
                e.printStackTrace();
        }
}

//附加drawable2Bitmap方法 static Bitmap drawable2Bitmap(Drawable d){ int width=d.getIntrinsicWidth(); int height=d.getIntrinsicHeight(); Bitmap.Config config=d.getOpacity()!=PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565; Bitmap bitmap=Bitmap.createBitmap(width,height,config); Canvas canvas=new Canvas(bitmap); d.setBounds(0, 0, width, height); d.draw(canvas); return bitmap; } </pre>

 本文由用戶 cwf8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!