Java 将画布转换为位图

Java 将画布转换为位图,java,android,Java,Android,我有一个画布对象,我正在搜索一种方法,将画布绘制成位图对象,如下所示: Canvas canvas = ...; Bitmap bitmap = Bitmap.createBitmap(canvas); 有办法吗?这可能会有帮助: private Bitmap getBitmap(int drawableRes, Context context) { Drawable drawable = context.getResources().getDrawable(drawableRes);

我有一个画布对象,我正在搜索一种方法,将画布绘制成位图对象,如下所示:

Canvas canvas = ...;
Bitmap bitmap = Bitmap.createBitmap(canvas);
有办法吗?

这可能会有帮助:

private Bitmap getBitmap(int drawableRes, Context context) {
    Drawable drawable = context.getResources().getDrawable(drawableRes);
    Canvas canvas = new Canvas();
    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), 
    drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    canvas.setBitmap(bitmap);
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), 
    drawable.getIntrinsicHeight());
    drawable.draw(canvas);
    return bitmap;
}
你这样称呼它:

     Bitmap drawableBitmap = getBitmap(YourResource, mContext);
因此,您创建了一个新位图,其宽度和高度与画布相同

  Bitmap myBitmap = new Bitmap( (int)Width, (int)Height, Config.RGB_565 )
  canvas.setBitmap(myBitmap)
但不要绘制位图,请尝试以下代码:

Canvas canvas = ...;
Bitmap bitmap = Bitmap.createBitmap(canvas);

canvas.setBitmap(bitmap);

不,没有这样的方法,但是相反的方法是可行的:新的CanvasBitMap你到底想要实现什么?这个画布包含了我的整个界面,所以这个操作就像以位图的形式获取屏幕截图,所以你有一些drawCanvas画布方法,对吗?然后简单地称之为传递新的CanvasBitMap我应该传递什么作为drawableRes?这可能比我解释得更好:你在哪里看到这样的方法:Bitmap.createBitmapCanvas?问题是createBitmap的方法不接受canvas作为参数你的答案没有任何意义createBitmap方法接受Bitmap作为参数,不是帆布