我是一位有用的助手,可以为您翻译文本。
我发现从视图创建位图的两种方法。但是,一旦我这样做了,视图就会消失,我不能再使用它了。在生成我的位图后,如何重新绘制视图?
第1种方法:
我发现从视图创建位图的两种方法。但是,一旦我这样做了,视图就会消失,我不能再使用它了。在生成我的位图后,如何重新绘制视图?
第1种方法:
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);
编辑
所以,我认为我理解了第一个问题发生了什么,我们基本上是将视图从其原始画布中移除,并在与该位图相关联的其他位置绘制它。能否以某种方式存储原始画布,然后设置视图在那里重新绘制?