我发现了两种从视图创建位图的方法。但是一旦我这样做,视图就会消失,我不能再使用它了。生成位图后如何重绘视图?
第一个:
public static Bitmap getBitmapFromView(View view) {
Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable =view.getBackground();
if (bgDrawable!=null)
bgDrawable.draw(canvas);
else
canvas.drawColor(Color.WHITE);
view.draw(canvas);
return returnedBitmap;
}
第二:
Bitmap viewCapture = null;
theViewYouWantToCapture.setDrawingCacheEnabled(true);
viewCapture = Bitmap.createBitmap(theViewYouWantToCapture.getDrawingCache());
theViewYouWantToCapture.setDrawingCacheEnabled(false);
编辑
所以,我想我理解第一个会发生什么,我们基本上是从原始画布中删除视图并将其绘制到与该位图相关的其他位置。我们可以以某种方式存储原始画布,然后将视图设置为在那里重绘吗?