本文主要是介绍Bitmap too large to be uploaded into a texture问题的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当加载的图片过大时,通常采用的方法是直接按照图片的比例压缩图片,显示出来
避免因为图片的过大而造成Oout of Menmery,具体方法这里看
http://blog.csdn.net/siyehuazhilian/article/details/16965689
但是当图片的宽高比例差距非常大的时候,即长图.
用上述的方法会造成短的一边的像素严重丢失以至于模糊不清
可以在ImageView的属性中设置:
android:maxHeight="1000dip"android:maxWidth="1000dip"
在图片过大的时候ImagLoder会自动处理图片避免OOM
但是仅仅这样,图片有可能会显示不出来,看Log日志:
Bitmap too large to be uploaded into a texture的意思是图片超过了硬件加速所规定的高度
这个时候我们只需要禁止硬件加速即可
android:hardwareAccelerated="false"
事实上,这是一个简单有效的方法
但是这个方法最好在这个Activity比较少用到的时候使用,因为禁止硬件加速总归不是什么好事
还有一个方法是:
重写ImagView的下列两个方法,可以分步显示长图
http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html
1 | public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint) |
2 |
3 | public Bitmap decodeRegion (Rect rect, BitmapFactory.Options options) |
这篇关于Bitmap too large to be uploaded into a texture问题的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!