我正在尝试在我的 Canvas 上使用适用于 Android 的硬件加速。我曾经有一个 SurfaceView
,我在上面做了 lockCanvas()
以获得后来绘制的 Canvas ,但我改为 TextureView
因为我无法让 SurfaceView
使用硬件加速。我目前正试图让这个 Canvas 使用硬件加速。
Canvas canvas = this.lockCanvas();
System.out.println(this.isHardwareAccelerated() + ", " + canvas.isHardwareAccelerated());
给我输出:真,假
(this
是一个 TextureView
)
有谁知道为什么 canvas
没有硬件加速,以及如何做到这一点?
编辑:据我发现,似乎我必须使用 OpenGL。但是,我仍然想知道是否有任何已宣布的计划为这样的 Canvas 提供硬件加速。
最佳答案
TextureView
仅在应用程序被硬件加速时工作,但它从 lockCanvas()
返回的 Canvas
当前从未被硬件加速。这意味着您将在软件中在 TextureView
的 Canvas
内进行绘制,但 TextureView
本身将使用 GPU 进行绘制。目前,获得硬件加速 Canvas 的唯一方法是使用 View 的 onDraw(Canvas)
方法。
关于java - 使用 lockCanvas() 的 Android TextureView 硬件加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966228/