最新碰到个需求,就是将布局转成图片导出,后来想到可以用view.draw(canvas)方法,将布局转为图片。
将布局转为bitmap
public Bitmap getBitmap(View view) {
//获取view的长宽
int width = view.getMeasuredWidth();
int height = view.getMeasuredHeight();
//若传入的view长或宽为小于等于0,则返回,不生成图片
if (width <=0 || height<=0) {
return null;
}
//生成一个ARGB8888的bitmap,宽度和高度为传入view的宽高
Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
if (bm == null) {
return null;
}
//根据bitmap生成一个画布
Canvas canvas = new Canvas(bm);
//注意:这里是解决图片透明度问题,给底色上白色,若存储时保存的为png格式的图,则无需此步骤
canvas.drawColor(Color.WHITE);
//手动将这个视图渲染到指定的画布上
view.draw(canvas);
return bm;
}
如果准备生成的是JPEG的图片则要注意,在将view绘制到