赞
踩
View下的OnDraw()方法自带一个canvas参数,这样的话,我们不能通过new Canvas(Bitmap bitmap)的形式来获取最终的图像,既然拿不到canvas,那么可以直接把整个view画到bitmap上啊。
- public Bitmap convertViewToBitmap(View view){
- Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),
- Bitmap.Config.ARGB_8888);
- //利用bitmap生成画布
- Paint paint = new Paint();
- paint.setColor(Color.WHITE);
- Canvas canvas = new Canvas(bitmap);
- canvas.drawRect(0, 0, bitmap.getWidth(), bitmap.getHeight(), paint);
- canvas.drawBitmap(bitmap, 0, 0, paint);
- //把view中的内容绘制在画布上
- view.draw(canvas);
- return bitmap;
- }
代码中还顺便重新设置了bitmap的背景为白色。
参考:
//http://www.cnblogs.com/devinzhang/archive/2012/06/05/2536848.html //http://www.aspku.com/kaifa/android/167382.html //https://blog.csdn.net/itchenlin/article/details/51206246
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。