/** * 保存到系统相册 * * @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; }android 把View 转成Bitmap 并保存到手机相册 转载https://www.codesocang.com/appboke/34935.html
热门源码