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)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值