图片加载

问题1:如何加载一张图片?
问题2:缓存的作用?
问题3:熟悉的图片加载框架?
在手机上,如果一张图片的大小超过应用内存的限制,势必造成oom。说到图片加载,不得不提BitMap,它是android中重要的图片处理类,利用它可以很方便的对图片进行缩放,旋转等操作。BitMapFactory支持从文件系统,资源,输入流以及自己数组加载一个BitMap对象,另外bitmapfactory.options参数,设置insamplesize即是采样率来进行图片缩放。大致流程:
1.设置BitMapFactory.options,将injustdecodebounds(只会解析图片等原始宽高信息,不会加载图片)设为true;
2.获得图片等原始宽rawWidth,原始高rawHeight;
3.结合图片控件所需newWidth,newHeight,设置采样率。
4.然后重新设置injustdecodebounds为false。
若手机加载一个来网络等图片,首先必须发网络请求,将图片download下来,然后在实现在相应的图片组件上。这一些列的过程,肯定需要时间的,如果一张图片迟迟不能加载进来的话,当然影响用户对产品的继续使用,另一方面,如果总是从网络加载图片,流量也是一笔不小的开销。所以,cache可以帮助提高产品的用户体验,和帮助用户节省流量。
cache可以将从网络来的数据缓存在内存中,也可以是磁盘中。对于memorycache,常见的算法有Lru,Lfu,fifo,同样diskcache,常见的算法有totalsizelimitdiskcache,filecountlimiteddiskcache。
我在做app时遇到的图片加载的时候。
问题1:recycler view卡顿;
问题2:图片错误;
问题3:图片闪一下;
由于recycler view的item包含图片组件。所以滑动起来非常费劲,不流畅。刚开始的时候,从网上查一下,决定使用图片加载框架universal-imageloader,虽然它已经停止跟新和维护,但是觉得学习资料比较多。使用了之后,效果十分明显,但是还是一些问题,图片加载时闪烁,还有图片错位。
后来,我认真看一下,配置options问题,修改了一些参数,闪烁问题得到解决,错位问题,是一个图片加载方式没有使用Imageloader。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值