Android,Gilde框架加载图片进内存。出现的Bitmap too large to be uploaded into a texture

用ImageLoad加载图片,会有的图片load不出来,报出的警告是: Bitmap too large to be uploaded into a texture (440x5500 max=4096x4096):

经过查找资料是因为当开启硬件加速的时候,GPU对于openglRender 有一个限制,这个不同的手机会有不同的限制:

这个限制值可以通过canvas.getMaximumBitmapHeight()和canvas.getMaximumBitmapWidth()来获得。
一般我们框架都有缩放图片内存
Glide框架以下都测试了
例子:如果 原图:400x4000 ,可以直接载入不过耗内存啊;我们缩放成200x200,这里是按照width进行缩放。缩放成200x2000可以加载进入imageview;
例子:原图 300X6000,不能直接载入,超过4096,这时候我们设置缩放200X200,因为BitmapFactory.Options.inSampleSize是整数行,这里200大于300/2; 所以此时 并没有缩放,设置其实是无效的。还是出错。
这时候我们就需要设置 小于150 的width 缩放 。
反之 height 一样的道理。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值