public void download(View v) { saveBitmap(convertViewToBitmap(image)); } public Bitmap convertViewToBitmap(View view) { int w = view.getWidth(); int h = view.getHeight(); Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); c.drawColor(Color.WHITE); /** 如果不设置canvas画布为白色,则生成透明 */ //view.layout(0, 0, w, h); view.draw(c); return bmp; } /** * 保存方法 */ public void saveBitmap(Bitmap bm) { String fileName = System.currentTimeMillis() + ".jpg";//命名一样,防止多次保存出现多个一样的图片文件 MediaStore.Images.Media.insertImage(getContentResolver(), bm, fileName, ""); //发送系统通知消息 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//如果是4.4及以上版本 Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri contentUri = Uri.fromFile(new File("/sdcard/Pictures")); //输出目录 mediaScanIntent.setData(contentUri); sendBroadcast(mediaScanIntent); } else { //<=4.4版本使用,不然高版本直接权限拒绝崩溃 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); } Toast.makeText(this, "下载二维码成功!", Toast.LENGTH_SHORT).show(); }