/** * 保存到系统相册 * * @param context * @param bmp */ public void saveImageToGallery(final Context context, final Bitmap bmp) { // TODO: 2017/2/20 android6.0权限申请https://github.com/anthonycr/Grant PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, new PermissionsResultAction() { @Override public void onGranted() { // 首先保存图片 File appDir = new File(Environment.getExternalStorageDirectory(), AppConfig.IMAGE_CAHE); if (!appDir.exists()) { appDir.mkdir(); } String fileName = System.currentTimeMillis() + ".jpg"; File file = new File(appDir, fileName); try { FileOutputStream fos = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 其次把文件插入到系统图库 try { MediaStore.Images.Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), fileName, null); toastShow("保存成功"); dismissProgressDialog(); } catch (FileNotFoundException e) { toastShow("保存失败"); e.printStackTrace(); } } @Override public void onDenied(String permission) { Toast.makeText(context, "Sorry, we need the Storage Permission to do that", Toast.LENGTH_SHORT).show(); } }); // 最后通知图库更新 context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path))); } /** * todo View 转Bitmap * * @param v * @return */ private Bitmap loadBitmapFromView(View v) { int w = v.getWidth(); int h = v.getHeight(); Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); c.drawColor(Color.WHITE); /** 如果不设置canvas画布为白色,则生成透明 */ v.layout(0, 0, w, h); v.draw(c); return bmp; }
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦