[关闭]
@natsumi 2016-07-14T08:00:27.000000Z 字数 777 阅读 2469

【转】解决:Bitmap too large to be uploaded into a texture

Android


转自:http://blog.csdn.net/ta893115871/article/details/9043559
原文不知道在哪儿==

  1. W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (440x4525, max=4096x4096)

简单说就是硬件加速的时候,对图片的大小有限制。不同设备可能有不同的最大值。这个问题悲催的地方是,程序貌似没有捕获到这个exception, 结果是程序也不报错,图片也显示不出来。只有看debug log才能发现这个error message.

一个解决的方法是禁止硬件加速,简单粗暴:

  1. <application android:hardwareAccelerated="false" ...>

比较好的解决方法是类似google map的实现:将图片分成不同的块,每次加载需要的块。android提供了一个方法:

http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html
本地:
file:///usr/local/android-sdk-linux/docs/reference/android/graphics/BitmapRegionDecoder.html

  1. public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)
  2. public Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)

采取上述操作后,就可以加载很多图片,同时也可以显示超级大图了。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注