Android將圖片保存至SD卡上
首先判斷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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!