您的位置:首页 > 移动开发 > Android开发

Android图片加载框架Android-Universal-Image-Loader

2016-03-04 16:11 357 查看

Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用

Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解

以上转自:xiaanming博客

==========================

开发常用:

1. 加载图片常用:displayImage()加载图片

① 使用displayImage()比使用loadImage()方便很多,也不需要添加ImageLoadingListener接口,直接将ImageView作为参数传递到displayImage()中就行了

②添加了一个图片加载中ImageVIew上面显示的图片,以及图片加载出现错误显示的图片,刚开始显示ic_stub图片,如果图片加载成功显示图片,加载产生错误显示ic_error

③ 根据控件的大小和imageScaleType来自动裁剪图片

④ OOM改善:减少线程池中线程的个数等

代码,下面是我写的一个ViewPager的Adapter:

package com.baofoo.mobile.wallet.home;

import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.baofoo.mobile.wallet.R;
import com.baofoo.mobile.wallet.common.manager.ClickFilter;
import com.baofoo.mobile.wallet.home.domain.Banners;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
* 首页banners Adapter
* Created by zst on 2016/3/15.
*/
public class BannersAdapter extends PagerAdapter {
private Activity activity;
private List<Banners> bannersList;
private ImageLoader imageLoader;
private DisplayImageOptions options;

public BannersAdapter(Activity activity, List<Banners> bannersList) {
this.activity = activity;
this.bannersList = bannersList;

imageLoader = ImageLoader.getInstance();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.finance_advert_default)
.showImageForEmptyUri(R.drawable.finance_advert_default)
.showImageOnFail(R.drawable.finance_advert_default)
.cacheInMemory(true)
.cacheOnDisk(true)
.build();
}

@Override
public int getCount() {
return bannersList.size();
}

@Override
public boolean isViewFromObject(View view, Object o) {
return view == o;
}

@Override
public Object instantiateItem(ViewGroup container, final int position) {
ImageView imageView = new ImageView(activity);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);// 基于控件大小填充图片
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClickFilter.clickFilterUrl(activity, bannersList.get(position).click);
}
});

imageLoader.displayImage(bannersList.get(position).img, imageView, options);
//String imgUrl = "https://ad.my.baofoo.com/data/mandaojr/upload-file/advertisingPic/20160315/5048f02607708c0e2986a76d747f7413.jpg";
//imageLoader.displayImage(imgUrl, imageView, options);

container.addView(imageView);

return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}


2. 加载https://

官网的jar包不能加载https://,下载链接:https://github.com/nostra13/Android-Universal-Image-Loader

但是实际开发中需要加载https://的图片,所以有些大牛就重写了universal-image-loader,imageloader下载链接:http://download.csdn.net/detail/u012246458/9477808
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: