Android 开发图片保存在本地

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

猜你喜欢

转载自blog.csdn.net/a872822645/article/details/81118170
今日推荐