package com.fanxin.app.fx.others; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.os.Environment; import android.util.Log; public class FileUtil { private static final String TAG = FileUtil.class.getSimpleName(); private String local_image_path; public FileUtil(Context context,String local_image_path) { this.local_image_path = local_image_path; } /* Checks if external storage is available for read and write */ public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /** * 保存图片到制定路径 * * @param filepath * @param bitmap */ public void saveBitmap(String filename, Bitmap bitmap) { if (!isExternalStorageWritable()) { Log.i(TAG, "SD卡不可用,保存失败"); return; } if (bitmap == null) { return; } try { File file = new File(local_image_path,filename); FileOutputStream outputstream = new FileOutputStream(file); if((filename.indexOf("png") != -1)||(filename.indexOf("PNG") != -1)) { bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputstream); } else{ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputstream); } outputstream.flush(); outputstream.close(); } catch (FileNotFoundException e) { Log.i(TAG, e.getMessage()); } catch (IOException e) { Log.i(TAG, e.getMessage()); } } /** * 返回当前应用 SD 卡的绝对路径 like * /storage/sdcard0/Android/data/com.example.test/files */ @SuppressLint("SdCardPath") public String getAbsolutePath() { File root = new File(local_image_path); if(!root.exists()){ root.mkdirs(); } return local_image_path; } @SuppressLint("SdCardPath") public boolean isBitmapExists(String filename) { File dir =new File(local_image_path); if(!dir.exists()){ dir.mkdirs(); } //context.getExternalFilesDir(null); File file = new File(dir, filename); return file.exists(); } }