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()中直接绘制视图的画布,而不是使用离屏画布.性能更好.
尽管为屏幕外画布启用硬件加速仍然很好,但肯定有大量的用例.