我正在尝试在 Honeycomb 中启用硬件加速,并在 Canvas 上显示一些位图。 一切正常,但对于大型位图(一维>2048),我在日志中收到错误:
OpenGLRenderer:位图太大,无法上传到纹理中
我知道这是因为硬件限制,如果启用硬件加速(通过 View.isHardwareAccelerated() 检查),可以通过减小要显示的最大位图大小来解决这个问题。
我的问题是:如何通过硬件轻松确定可用于位图绘制的最大纹理大小。 2048 似乎是我的设备上的限制,但在不同的设备上可能会有所不同。
编辑:我不是在创建 OpenGL 应用程序,只是普通应用程序,它可以利用硬件加速。所以我对OpenGL一点也不熟悉,我只是在日志中看到了与OpenGL相关的错误,并寻求解决。
最佳答案
目前最小限制为 2048 像素(即硬件必须支持至少 2048x2048 的纹理。)在 ICS 中,我们将在 Canvas 类中引入一个新 API,该 API 将为您提供以下信息:
Canvas.getMaximumBitmapWidth()
和 Canvas.getMaximumBitmapHeight()
。
关于android - 硬件加速 Activity - 如何获得 OpenGL 纹理大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7428996/