view转换成图片(下面的view转化成你的整体布局)
// 把一个View转换成图片
view.setDrawingCacheEnabled(true);
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
//测量在屏幕上宽和高
view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
//确定View的大小和位置的,然后将其绘制出来
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
保存图片到相册
public static void saveIamge(Activity activity,Bitmap bitmap,View view){
// 判断手机设备是否有SD卡
boolean isHasSDCard = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if (isHasSDCard) {
//系统相册目录
try {
File file = createImageFile();
FileOutputStream fos = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
// 保存过后释放资源
view.destroyDrawingCache();
// 其次把文件插入到系统图库
String fileName = file.getName();
// LogHelper.e("ATU图片路径:", fileName);
//保存
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, file.getAbsolutePath());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
//最后通知图库更新
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);//扫描单个文件
intent.setData(Uri.parse("file://" + file.getAbsolutePath()));
activity.sendBroadcast(intent);
ToastUtil.makeText(activity,"已将图片保存到相册");
} catch (Exception e) {
e.printStackTrace();
ToastUtil.makeText(activity,"生成图片抛出异常" + e.toString());
}
} else {
ToastUtil.makeText(activity,"您的手机没有SD卡,无法保存图片");
}
}
private static File createImageFile() throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());
String imageFileName = "JPEG_" + timeStamp + ".jpg";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
if (!storageDir.exists()) {
if (!storageDir.mkdir()) {
throw new IOException();
}
}
// LogHelper.e("ATU图片路径:", imageFileName);
return new File(storageDir, imageFileName);
}
最后别忘了动态申请权限以及android7.0路径存储配置
下载链接