1.universal-image-loader
首先在application中进行相关配置,为了防止图片过大时候滑动卡顿,配置如下:
ImageLoader.getInstance().init(ImageLoaderHelper.getInstance(this).getImageLoaderConfiguration(ApiConstants.Paths.IMAGE_LOADER_CACHE_PATH));双缓存,内存缓存,加sd卡缓存。具体配置详见项目。
用法:
ImageLoader.getInstance().displayImage(bankList.get(position).getImageUrl(), viewHolder.img);
2.Picasso
as中谷歌自带的图片缓存
用法:
Picasso.with(context).load(bankList.get(position).getThumbnailUrl()).into(viewHolder.img);
3.
fresco
由facebook出的缓存框架,支持圆形图片
application中进行配置
Fresco.initialize(getApplicationContext());
用法:在布局文件中加载它的imageview,然后代码中正常加载即可
viewHolder.img.setImageURI(Uri.parse(bankList.get(position).getUrl()));
4.volley
bitmapUtils = new BitmapUtils(context,context.getCacheDir().getPath()); bitmapUtils.display(viewHolder.img, bankList.get(position).getUrl());
5.Glide
// For a simple view:
@Override
public
void
onCreate(Bundle savedInstanceState) {
...
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.with(
this
).load(
"http://goo.gl/h8qOq7"
).into(imageView);
}
// For a list:
@Override
public
View getView(
int
position, View recycled, ViewGroup container) {
final
ImageView myImageView;
if
(recycled ==
null
) {
myImageView = (ImageView) inflater.inflate(R.layout.my_image_view,
container,
false
);
}
else
{
myImageView = (ImageView) recycled;
}
String url = myUrls.get(position);
Glide.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
return
myImageView;
}