/**
* 把一个View的对象转换成bitmap
*/
static Bitmap getViewBitmap(View v) {
v.clearFocus(); // 清除视图焦点
v.setPressed(false);// 将视图设为不可点击
boolean willNotCache = v.willNotCacheDrawing(); // 返回视图是否可以保存他的画图缓存
v.setWillNotCacheDrawing(false);
// Reset the drawing cache background color to fully transparent
// for the duration of this operation //将视图在此操作时置为透明
int color = v.getDrawingCacheBackgroundColor(); // 获得绘制缓存位图的背景颜色
v.setDrawingCacheBackgroundColor(0); // 设置绘图背景颜色
if (color != 0) { // 如果获得的背景不是黑色的则释放以前的绘图缓存
v.destroyDrawingCache(); // 释放绘图资源所使用的缓存
}
v.buildDrawingCache(); // 重新创建绘图缓存,此时的背景色是黑色
Bitmap cacheBitmap = v.getDrawingCache(); // 将绘图缓存得到的,注意这里得到的只是一个图像的引用
if (cacheBitmap == null) {
return null;
}
Bitmap bitmap = Bitmap.createBitmap(cacheBitmap); // 将位图实例化
// Restore the view //恢复视图
v.destroyDrawingCache();// 释放位图内存
v.setWillNotCacheDrawing(willNotCache);// 返回以前缓存设置
v.setDrawingCacheBackgroundColor(color);// 返回以前的缓存颜色设置
return bitmap;
}
android 视图截屏
最新推荐文章于 2024-09-21 14:23:15 发布