android bitmap另存本地
阿新 • • 發佈:2018-12-19
1、許可權
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2、主程式碼
package com.fpt.bitmap2image; /*** * * 將bitmap儲存到本地目錄 * * */ import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.UUID; public class MainActivity extends AppCompatActivity { private Bitmap bitmap; private static final String SD_PATH = "/sdcard/dskqxt/pic/";//儲存地址 private static final String IN_PATH = "/dskqxt/pic/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bitmap= ((BitmapDrawable) getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap(); saveBitmap(this,bitmap); } public static String saveBitmap(Context context, Bitmap mBitmap) { String savePath; File filePic; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { savePath = SD_PATH; } else { savePath = context.getApplicationContext().getFilesDir() .getAbsolutePath() + IN_PATH; } try { filePic = new File(savePath + generateFileName() + ".jpg");//儲存的格式為jpg if (!filePic.exists()) { filePic.getParentFile().mkdirs(); filePic.createNewFile(); } FileOutputStream fos = new FileOutputStream(filePic); mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } return filePic.getAbsolutePath(); } /** * 隨機生產檔名 * * @return */ private static String generateFileName() { return UUID.randomUUID().toString(); } }