博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenGLRenderer: Bitmap too large to be uploaded into a texture 的原因简析
阅读量:4029 次
发布时间:2019-05-24

本文共 638 字,大约阅读时间需要 2 分钟。

根本原因:

使用硬件加速沉浸,图片太大(生成对应的Bimmap size太大),生成GPU处理的纹理失败(不允许生成)

解决方案:

1.换张小size的图片(当图片是本杝的,用来当背景图这类)

2.使用第三方图片库,对图片使用缩压处理

View的渲染与OpenGLRenderer的关系

ImageView或其它View的子类的渲染是使用了android.graphics.Canvas

android.graphics.Canvas 是一个 2D 图形 API,而且是最受开发者群体青睐的图形 API。Canvas 运算可在 Android 中绘制所有原生和自定义 android.view.View。在 Android 中,Canvas API 通过一个名为 OpenGLRenderer 的绘制库实现硬件加速,该绘制库将 Canvas 运算转换为 OpenGL 运算,以便它们可以在 GPU 上执行。

从 Android 4.0 开始,硬件加速的 Canvas 默认情况下处于启用状态。因此,支持 OpenGL ES 2.0 的硬件 GPU 对于 Android 4.0 及更高版本的设备来说是强制要求

综上所示,如果图片太大,OpenGLRenderer把Bitmap转成textrue(纹理)会失败,从而对应的图片沉浸不出来。

注:可以简单做一下实验,当把APP的硬件加速关闭,使用纯软件渲染,图片就可以显示出来了

AndroidManifest.xml的

参考资料

转载地址:http://uambi.baihongyu.com/

你可能感兴趣的文章
Promise的基本使用
查看>>
android给文字加边框(修改不能居中的问题)
查看>>
coursesa课程 Python 3 programming course_2_assessment_1
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
coursesa课程 Python 3 programming Dictionary methods 字典的方法
查看>>
Returning a value from a function
查看>>
coursesa课程 Python 3 programming Functions can call other functions 函数调用另一个函数
查看>>
coursesa课程 Python 3 programming Tuple Assignment with Unpacking
查看>>
coursesa课程 Python 3 programming The while Statement
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
visca接口转RS-232C接口线序
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
关于共享单车定位不准问题
查看>>