Bitmap too large to be uploaded into a texture
2015-08-20 10:50
351 查看
最近在做项目的时候遇到了这么个异常:
Bitmap too large to be uploaded into a texture
不难看出字面上的意思就是你这个Bitmap太大了,Android小妾做不到给你渲染上去哈。
我们来看看根本原因,由于项目的需要在Webview中来播放视频,所以在Activity层我开启了硬件加速,这带来了得问题就是我的Bitmap的图层超出了GPU对于openglRender的限制值,这个不同的手机会有不同的限制。
上网查资料发现有的朋友说,这个限制值可以通过canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()来获得。
但是我发现这种方式并没有拿到真正的限制值。
首先来给大家看看我的异常信息:
不难看出我的限制值是4096X4096,但是我通过canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()这两个方法拿到的限制值是三万多,显然不正确。
后来查资料,我的解决方案如下:
第一步:拿到本设备的GPU对于openglRender的限制值
第二步:在你初始化视图的时候判断一下你的Bitmap的长宽是否超出了这个值,选择关闭硬件加速。当然你也可以分片来绘图。
至于如何开启、关闭、判断是否有硬件加速大家可以看看以下博文,这里我就不做介绍了。
/article/4966494.html
Bitmap too large to be uploaded into a texture
不难看出字面上的意思就是你这个Bitmap太大了,Android小妾做不到给你渲染上去哈。
我们来看看根本原因,由于项目的需要在Webview中来播放视频,所以在Activity层我开启了硬件加速,这带来了得问题就是我的Bitmap的图层超出了GPU对于openglRender的限制值,这个不同的手机会有不同的限制。
上网查资料发现有的朋友说,这个限制值可以通过canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()来获得。
但是我发现这种方式并没有拿到真正的限制值。
首先来给大家看看我的异常信息:
08-17 15:41:02.815: W/OpenGLRenderer(19967): Bitmap too large to be uploaded into a texture (2160x7332, max=4096x4096)
不难看出我的限制值是4096X4096,但是我通过canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()这两个方法拿到的限制值是三万多,显然不正确。
后来查资料,我的解决方案如下:
第一步:拿到本设备的GPU对于openglRender的限制值
//added by Jack for handle exception "Bitmap too large to be uploaded into a texture". public boolean isNeedCloseHardwareAcceleration(int w, int h) { int[] maxSize = new int[1]; GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0); if(maxSize[0] < h || maxSize[0] < w) { return true; } return false; }
第二步:在你初始化视图的时候判断一下你的Bitmap的长宽是否超出了这个值,选择关闭硬件加速。当然你也可以分片来绘图。
至于如何开启、关闭、判断是否有硬件加速大家可以看看以下博文,这里我就不做介绍了。
/article/4966494.html
相关文章推荐
- dd wipe 命令磁盘清空shell脚本,笔记本台机MAC通用
- OLAP
- linux /dev/shm的用途
- jQuery鼠标经过方形图片切换成圆边效果代码分享
- 关于软件开发,你老板不知道的 7 件事
- Web Service 的工作原理
- Android 自带的分享的案例
- c/c++编码规范(1)--头文件
- poj1007
- Makefile经典教程
- android shape使用总结
- Android编译过程详解(三)
- gc实例与gc报告的阅读
- hdoj 1874 畅通工程续【SPFA】
- PHP 小知识
- idea14 自定义模板Templates导入
- gc实例与gc报告的阅读
- DIH增量、定时导入并检索数据--转载
- iOS-生成国际化包-配置App多语言支持
- 如何编辑pdf