/** * 图片存储到本地 方法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权限变成不可读写。如果保存不成功。那么你去安全管家,权限管理里看看是不是不让写了。是的话打开就好了