ビューからビットマップを作成する2つの方法を見つけました。しかし、それを行うと、ビューが消えて、もう使用できなくなります。ビットマップを生成した後にビューを再描画するにはどうすればよいですか?
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;
}
2番目:
Bitmap viewCapture = null;
theViewYouWantToCapture.setDrawingCacheEnabled(true);
viewCapture = Bitmap.createBitmap(theViewYouWantToCapture.getDrawingCache());
theViewYouWantToCapture.setDrawingCacheEnabled(false);
編集
したがって、最初のキャンバスで何が起こるかは理解していると思います。基本的に、元のキャンバスからビューを削除し、そのビットマップに関連付けられた別の場所に描画します。どういうわけか、元のキャンバスを保存してから、そこに再描画されるようにビューを設定できますか?