java - 使用 lockCanvas() 的 Android TextureView 硬件加速

标签 java android android-canvas hardware-acceleration

我正在尝试在我的 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 当前从未被硬件加速。这意味着您将在软件中在 TextureViewCanvas 内进行绘制,但 TextureView 本身将使用 GPU 进行绘制。目前,获得硬件加速 Canvas 的唯一方法是使用 View 的 onDraw(Canvas) 方法。

关于java - 使用 lockCanvas() 的 Android TextureView 硬件加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966228/

相关文章:

java - 为什么在缺少 @Transactional 时没有抛出 TransactionRequiredException?

android - AsyncTask中的httpClient是否需要wakeLock?

android - 当 Chrome 在 Android 上最小化时,Web 应用程序可以执行任务吗?

android - 钛,安卓,Estimote iBeacon : how to create a

Android 在 Canvas 中移动位图

java - 如何在一张图像中绘制曲线和直线?

java - 使用匿名类有什么害处?

java - 将 map 复制到其他 map 时丢失对象信息

android - 在 ImageView 上移动形状?

java - 为 OS/X 和 Unix 打包 Java CLI 应用程序的最佳选择?