前提准备(下载ImageLoager的Library):
http://download.csdn.net/detail/qq_29461259/9197705
Step1:在application中初始化ImageLoader的配置
<span style="font-size:14px;">public class MyApplication extends Application {
@Override
public void onCreate() {
//配置ImageLoaderConfiguration
initImageLoader(this);
}
public static void initImageLoader(Context context) {
// This configuration tuning is custom. You can tune every option, you may tune some of them,
// or you can create default configuration by
// ImageLoaderConfiguration.createDefault(this);
// method.
ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
config.threadPriority(Thread.NORM_PRIORITY - 2);//配置下载图片的线程优先级
config.denyCacheImageMultipleSizesInMemory();//不会在内存中缓存多个大小的图片
config.diskCacheFileNameGenerator(new Md5FileNameGenerator());//为了保证图片名称唯一
config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
//内存缓存大小默认是:app可用内存的1/8
config.tasksProcessingOrder(QueueProcessingType.LIFO);</span>
Step2:定义加载大图还是小图对应的options
<span style="font-size:14px;">public class ImageLoaderOptions {
//在显示小图的选项
public static DisplayImageOptions list_options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_default)// 加载过程中显示什么图片
.showImageForEmptyUri(R.drawable.ic_default)// url为空的时候显示什么图片
.showImageOnFail(R.drawable.ic_default)// 加载失败显示什么图片
.cacheInMemory(true)// 在内存缓存
.cacheOnDisk(true)// 在硬盘缓存
.considerExifParams(true)// 会识别图片的方向信息
.displayer(new FadeInBitmapDisplayer(500)).build();// 渐渐显示的动画
// .displayer(new RoundedBitmapDisplayer(100)).build();//显示圆角或圆形图片
//在显示大图的时候的选项,
public static DisplayImageOptions pager_options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.ic_default)
.showImageOnFail(R.drawable.ic_default)
.resetViewBeforeLoading(true)//在ImageView显示图片之前先清空已有的图片内容
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY)//会进一步将按照ImageView的宽高来缩放
.bitmapConfig(Bitmap.Config.RGB_565)//设置颜色的渲染模式,是比较节省内存的模式
.considerExifParams(true)
.displayer(new FadeInBitmapDisplayer(300)).build();</span>
}
Step3:获取ImageLoader实例并加载图片
<span style="font-size:14px;">public class MainActivity extends Activity {
private int length;
private ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//要显示的图片个数
length = Images.imageUrls.length;
//获取imageloader
imageLoader = ImageLoader.getInstance();
ListView listview = (ListView) findViewById(R.id.listview);
MyAdapter MyAdapter = new MyAdapter();
listview.setAdapter(MyAdapter);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(), R.layout.activity_iamgevie, null);
ImageView iamgeview = (ImageView) view.findViewById(R.id.imageView);
imageLoader.displayImage(Images.imageUrls[position], iamgeview, ImageLoaderOptions.pager_options);
return view;
}
}
}</span>