我们可以硬件加速屏幕外的画布吗?

use*_*701 6 android canvas hardware-acceleration

我正在创建一个离屏位图+画布,将一堆较小的位图绘制到其中,然后将其绘制到视图中.isHardwareAccelerated()方法为我的画布返回false:

mBitmap = new Bitmap(500, 500, Bitmap.Config.RGB_565);
mCanvas = new Canvas(mBitmap);
mCanvas.isHardwareAccelerated(); // false
Run Code Online (Sandbox Code Playgroud)

我可以看到在我的View的onDraw()方法中给我的画布是硬件加速的:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.isHardwareAccelerated(); // true

    // My current approach, but maybe better to draw directly
    // to the view's canvas if it's hardware accelerated?
    canvas.drawBitmap(mBitmap, ...);
}
Run Code Online (Sandbox Code Playgroud)

我想知道我们是否可以为屏幕外画布打开它?

我也想知道我是否应该直接绘制视图的硬件加速画布,而不是打扰屏幕外的画面,如果它不会加速.我认为首先将所有内容绘制到屏幕外会更快.

我必须重新组织我的代码来测试它,只是想知道我是否遗漏了屏幕外显示的东西.

谢谢

-------更新-----------------------------------

我重构了我的绘图代码,直接在onDraw()中直接绘制视图的画布,而不是使用离屏画布.性能更好.

尽管为屏幕外画布启用硬件加速仍然很好,但肯定有大量的用例.