效果图:
注意:若app中需要使用圆角图片,且图片是根据url获取的,可以使用imageLoader,只需在参数设置中:displayer(new RoundedBitmapDisplayer(int rounded))
imageLoader使用步骤:
1 初始化
2 设置参数
3 display()
1 初始化:在application的onCreate()方法中初始化
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// imageLoader要在application的oncreate()方法中初始化
initImageLoader();
}
public void initImageLoader() {
//imageLoader要在application的oncreate()方法中初始化
//1 设置参数
ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(getApplicationContext());
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);
config.writeDebugLogs(); // Remove for release app
//2初始化
ImageLoader.getInstance().init(config.build());
}
}
2 设置参数:DisplayImageOptions
public class ImageLoaderOptions {
// 1 listView中图片参数
public static DisplayImageOptions 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(3000))//图片渐变效果显示
.displayer(new RoundedBitmapDisplayer(1000)).build();// 图片圆角显示:边角处內圆的半径值。
// 若想圆形显示,则设置>=imageview宽/2,且宽=高。[可直接给1000]
// RoundedBitmapDisplayer 当imageview的height= wrap_content高可能显示不出来
// 2 viewPager中参数设置()
public static DisplayImageOptions pagerOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.ic_default)
.showImageOnFail(R.drawable.ic_default)
.resetViewBeforeLoading(true)// 加载前清空imageview上的图片
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY)// 图片的缩放类型,对图片进行进一步的压缩,EXACTLY_STRETCHED:拉伸
.bitmapConfig(Config.RGB_565)// 设置图片的色彩模式,是比较节省内存的模式
.displayer(new FadeInBitmapDisplayer(2000))
// .displayer(new RoundedBitmapDisplayer(1000)) //当imageview的height=wrap_content高可能显示不出来。
.build();
}
3 调用display()方法
ImageLoader.getInstance().displayImage(Contant.urls[position], holder.imageView, ImageLoaderOptions.options);
源码实例: http://download.csdn.net/detail/ss1168805219/9501847
Android Studio 中如何引用?
dependencies {
...
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
...
}