Android-Universal-Image-Loader-Demo 加载图片
显示app的icon,使用 ” Android-Universal-Image-Loader” 工具:
1、导入资料中的Android-Universal-Image-Loader-Demo,参照ImageListActivity.java即可完成图片下载显示功能
2、把Android-Universal-Image-Loader-Demo项目中libs中的“universal-image-loader-1.9.2-with-sources.jar” 复制到我们项目中的libs目录中
3、icon的url地址格式为:http://127.0.0.1:8090/image?name=app/com.youyuan.yyhl/icon.jpg
4、显示icon
String iconUrl = Urls.IMAGE + "?name=" + data.iconUrl;
ImageLoader.getInstance().displayImage(iconUrl, holder.iv_icon);
在自定义的MyApp继承Application 的onCreate方法中调用如下方法对ImageLoader进行初始化:
public static void initImageLoader(Context context) {
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) //考虑exif参数
// .displayer(new RoundedBitmapDisplayer(20)) // 显示圆角
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2) // 线程优先级
.denyCacheImageMultipleSizesInMemory() // 禁止在内存中把一张图片缓存多种尺寸
.diskCacheFileNameGenerator(new Md5FileNameGenerator()) // 缓存文件名的生成器
.tasksProcessingOrder(QueueProcessingType.LIFO) // 下载图片的任务的顺序
.writeDebugLogs() // Remove for release app // 写出调试信息,发布apk时注释掉
.defaultDisplayImageOptions(options) // 默认显示图片显示选项
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config); // 初始化ImageLoader
}
用Android-Universal-Image-Loader显示图片会有缓存,需要写SD卡权限
注意:Android-Universal-Image-Loader是使用ImageView的src属性来显示图片的,所以我们在xml中设置默认图片时不要设置到background属性中。
使用ViewPager实现轮播图
广告条是跟随ListView可以上下滑动的,所以可以把广告条添加到ListView的HeaderView中,首先需要写好布局:
layout_home_banner.xml
private void initBanner() {
ListView listView = ptr_listview.getRefreshableView();
View bannerView = View.inflate(context, R.layout.banner_view, null);
bannerViewPager = (ViewPager) bannerView.findViewById(R.id.view_pager);
listView.addHeaderView(bannerView);
}
在获取到广告条数据的地方显示数据:
if (homeBean.picture != null && !homeBean.picture.isEmpty()) {
bannerViewPager.setAdapter(new BannerAdapter(homeBean.picture));
}
在adapter包中创建BannerAd