android - 硬件加速 Activity - 如何获得 OpenGL 纹理大小限制?

标签 android android-3.0-honeycomb hardware-acceleration

我正在尝试在 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/

相关文章:

android - 具有不同渲染输出的 drawBitmap(Nexus 7 与其他设备)

visual-studio - 如何验证 Android SDK 模拟器是否在 Hyper-V 中运行

android - 从 SQLite 数据库获取纬度和经度以在 Android MapOverlay 中使用

android - 有官方的Android section View吗?

android - 在 Kotlin 中,如何使属性只能由特定类型访问

android - 默认图片库无法以编程方式在 Android HoneyComb 平板电脑 (v 3.2) 中打开

单击项目时的Android操作栏自定义下拉 View

android - 在运行时检测硬件加速 : Android

Android Asynctasks,在 Activity 之间传递字符串

android - Retrofit 2.0 的自定义类型适配器