零
一、(Bitmap)view?
View截图,简单来说就是把view转换成bitmap,这里有两种方法。
1.1 drawingcache
我们只说怎么用,是什么和为什么有兴趣去学习一个。
private static Bitmap viewToBitmap(View v) {
v.setDrawingCacheEnabled(true);
v.buildDrawingCache();
Bitmap screenshot = v.getDrawingCache();
v.setDrawingCacheEnabled(false);
return screenshot;
}
简单来说就是获取view的DrawingCache,记得用完之后关闭(setDrawingCacheEnabled(false))。不过注意这种方法要求view已经经过layout在界面上显示了。
1.2 canvas绘制
这种思路就直接了,先看代码:
private static Bitmap viewToBitmap(View v) {
Bitmap screenshot;
screenshot = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(screenshot);
v.draw(canvas);
return screenshot;
}
创建一个和view等宽高的bitmap,ARGB_4444指的是bitmap的像素类型。
ARGB_8888:四个通道都是8位,每个像素占用4个字节,图片质量是最高的,但是占用的内存也是最大的;
ARGB_4444:四个通道都是4位,每个像素占用2个字节,图片的失真比较严重;
RGB_565:没有A通道,每个像素占用2个字节,图片失真小,但是没有透明度;
ALPHA_8:只有A通道,每个像素占用1个字节大大小,只有透明度,没有颜色值。
之后就是创建canvas,通过View.draw()方法绘制了。
//作为Android开发的初学者,如果我有错误的地方或者不足的话欢迎大家指正。希望与大家一同进步。