最近用gallery做了一个广告轮播图片的组件。在让图片左右拖动的时候,不停在闪屏,我的大框架是用了fragment,以为受这个影响。
1、我发现在用adapter加载图片的时候使用了aquery
- aq.id(R.id.gallery_image).image(data.getString("pic"));
aquery组件貌似没有懒加载的功能,然后图片加载不上,导致gallery一直在那闪。
2、然后我尝试不使用加载图片的框架,直接使用android原生的加载图片去写,
- Bitmap bitmap = getBitmapFromCache(url); //从缓存中读取
- if (bitmap == null) {
- viewHolder.imageView.setImageResource(R.drawable.title_bar); //缓存没有设为默认图片
先读取缓存,缓存不存在的话直接加载默认图片,然后通过Handler回调来加载图片,发现gallery一直在闪的问题解决了。
3、后来,我尝试把加载图片换成afinal框架
- fb.display(imageView, data.getString("pic"));
发现也是好了。
总结:课件afinal框架里面加载图片是使用了懒加载的策略,而aquery里面没使用这个策略,具体我没研究代码,也许我没找到aquery正确的使用方法。