jcw*_*jcw 35

虽然getBitmap()画布没有任何功能,但由于您正在制作自定义视图,因此您可以在视图类中编写这样的函数.

public Bitmap get(){
   return this.getDrawingCache();
}
Run Code Online (Sandbox Code Playgroud)

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

this.setDrawingCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)

否则getDrawingCache将返回null

  • 救命稻草!非常感谢.找不到任何地方. (3认同)
  • 确切地说......我在寻找什么.非常感谢. (2认同)
  • 似乎已弃用`getDrawingCache`:https://developer.android.com/reference/android/view/View#getDrawingCache() (2认同)

kos*_*tja 15

没有办法从中提取Bitmap出来Canvas.您可以访问它的唯一方法是在创建这样的画布时自己传递它new Canvas(myBitmap)并保留引用.

EDIT2:看@Alex评论打击 - 传递BitmapCanvas它的方法似乎不适用于更新版本的Android.

编辑:如果你没有创建Canvas自己,你可以创建一个屏幕大小Bitmap(你需要或任何大小),然后将它传递给CanvasonDraw这样的电话:canvas.setBitmap(myBitmap).

  • 如果您不自己创建“画布”,则无法与其“位图”交互。在 `onDraw()` 中调用 `canvas.setBitmap()` 会导致 `UnsupportedOperationException` (2认同)