我怎样才能得到我在onDraw得到的canvas的位图?

如何从自定义视图的canvas创build位图。

Solutions Collecting From Web of "我怎样才能得到我在onDraw得到的canvas的位图?"

没有办法从Canvas提取Bitmap 。 你可以访问它的唯一方法就是在像这个new Canvas(myBitmap)一样创buildcanvas时自己传递它,并保存引用。

编辑2:看@Alex评论打击 – 将Bitmap传递给Canvas似乎不适用于更新版本的Android。

编辑:如果你不自己创build的Canvas ,你可以创build一个屏幕大小的Bitmap (或任何您需要的大小),然后将其传递到像这样的onDraw调用Canvascanvas.setBitmap(myBitmap)

虽然canvas上没有getBitmap()函数,但由于您正在制作自定义视图,因此您可以在视图类中编写像这样的函数。

 public Bitmap get(){ return this.getDrawingCache(); } 

这将返回视图的位图,但重要的是在所有的构造函数中添加这个,

 this.setDrawingCacheEnabled(true); 

否则getDrawingCache将返回null

我发现Canvas有一个setBitmap函数,但不是一个getBitmap函数。 这很奇怪,但无论如何,它使我自己创build位图,并将其传递给canvas,保留参考。