public
Bitmap getViewBitmap(View v) {
v.clearFocus();
//
清除视图焦点
v.setPressed(false);//
将视图设为不可点击
boolean
willNotCache = v.willNotCacheDrawing(); //
返回视图是否可以保存他的画图缓存
v.setWillNotCacheDrawing(false);
//将视图在此操作时置为透明
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); //
将位图实例化
//恢复视图
v.destroyDrawingCache();//
释放位图内存
v.setWillNotCacheDrawing(willNotCache);//
返回以前缓存设置
v.setDrawingCacheBackgroundColor(color);//
返回以前的缓存颜色设置
return
bitmap;
}
688

被折叠的 条评论
为什么被折叠?



