首先前提是我们的数据已经做好了,
// 初始化PullToRefresh
pullToRefreshListView = findViewById(R.id.pull_to_refresh_listview);
// 展示一个空的List用来存图片和我们轮播用的小圆点
dataBeanList = new ArrayList<>();
newsListAdapter = new NewsListAdapter(this, dataBeanList);
pullToRefreshListView.setAdapter(newsListAdapter);
/**
* 轮播操作
*/
private void bannerOperator() {
// 给PullToRefresh添加头布局
ListView refreshableView = pullToRefreshListView.getRefreshableView();
View bannerView = LayoutInflater.from(this).inflate(R.layout.banner_layout, null, false);
// 查找轮播视图
viewPager = bannerView.findViewById(R.id.view_pager);
llPonits = bannerView.findViewById(R.id.ll_points);
bannerImages = new ArrayList<>();
ponits = new ArrayList<>();
// 设置头布局的布局参数
AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 600);
bannerView.setLayoutParams(params);
// 添加头布局
refreshableView.addHeaderView(bannerView);
// 请求轮播
bannerCallback = new BannerCallback();
第一个参数是我们传过去用的接口,第二个参数是接口回调会有一个请求成功和请求失败
httpUtils.getDataFromServer(bannerUrl, bannerCallback);
}
这里已经封装了一个图片的网络请求,所以我直接用了不写代码了
class BannerCallback implements HttpUtils.NetCallback {
数据请求成功走这个方法
@Override
public void onSuccess(String result) {
Log.i(TAG, "轮播:" + result);
Gson gson = new Gson();
UIBannerBean uiBannerBean = gson.fromJson(result, UIBannerBean.class);
for (UIBannerBean.DataBean dataBean : uiBannerBean.getData()) {
// 添加图片
ImageView imageView = new ImageView(MainActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(dataBean.getImg(), imageView);
bannerImages.add(imageView);
// 添加小圆点
ImageView point = new ImageView(MainActivity.this);
point.setImageResource(R.drawable.point_normal);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(40, 40);
params.leftMargin = 10;
llPonits.addView(point, params);
ponits.add(point);
}
// 设置Adapter
viewPager.setAdapter(new BannerAdapter(bannerImages));
changePonintState(0);
mHandler.sendEmptyMessageDelayed(CODE_BANNER, DELAY);
}
//请求失败会调用这个方法
@Override
public void onError(String errorMsg) {
}
}