首先需要读写权限,用的是:
compile 'com.mylhyl:acp:1.1.7'
在读取资源文件保存本地过程中,有一点很容易出错,就是在创建文件的时候,直接写入全路径并不能成功,需要先创建文件夹,再创建文件才能成功,代码如下:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.t1); File file1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/ano/"); if (!file1.exists()) { file1.mkdirs(); } File file = new File(file1, "ces2.jpg"); try { FileOutputStream fileOutputStream = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }String mpath = file.getAbsolutePath();Bitmap bitmap = BitmapFactory.decodeFile(mpath); mImageView.setImageBitmap(bitmap);
权限工具代码:
Acp.getInstance(CDBActivity.this).request(new AcpOptions.Builder().setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).build(), new AcpListener() { @Override public void onGranted() { //申请成功,读写操作 } @Override public void onDenied(List<String> list) {//权限申请失败 }
});