1.依赖
allprojects { repositories { google() jcenter() //BannerViewPage maven { url 'https://jitpack.io' } } }
//BannerViewPager implementation 'com.github.zhpanvip:bannerviewpager:3.5.4' //OkGo网络框架 implementation 'com.lzy.net:okgo:3.0.4' implementation 'com.lzy.net:okserver:2.0.5' //Gson implementation 'com.google.code.gson:gson:2.8.2' //Glide implementation 'com.github.bumptech.glide:glide:4.9.0'
2.XML
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/bannView"
android:layout_margin="20dp"
android:layout_width="wrap_content"
android:layout_height="300dp"/>
3.Activity类
OkGo.<String>get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1")
.execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String body = response.body();
Gson gson = new Gson();
JavaBan javaBan = gson.fromJson(body, JavaBan.class);
bannView.setPageStyle(PageStyle.MULTI_PAGE) //轮播图的样式
.setIndicatorGravity(IndicatorGravity.CENTER) //指示器的位置
.setRevealWidth(BannerUtils.dp2px(10)) //图片宽度
.setIndicatorHeight(BannerUtils.dp2px(5)) //指示器的高度
.setPageMargin(BannerUtils.dp2px(10)) //图片与图片左右的边距
.setIndicatorStyle(IndicatorStyle.ROUND_RECT) //指示器的样式
.setIndicatorSliderColor(Color.BLACK,Color.RED) //选中的颜色 + 未选中的颜色
.setIndicatorMargin(0,0,0,0) //页面的外边距
//适配器 实体类集合
.setAdapter(new AdapTer()).create(javaBan.getData()); //添加适配器 + 添加数据
}
});
4.适配器
public class AdapTer extends BaseBannerAdapter<JavaBan.DataDTO> {
@Override
protected void bindData(BaseViewHolder<JavaBan.DataDTO> holder, JavaBan.DataDTO data, int position, int pageSize) {
Glide.with(Utils.getApp()).load(data.getPic()).into((ImageView) holder.findViewById(R.id.img));
//赋图片 子布局的ImageView的(id)
}
@Override
public int getLayoutId(int viewType) {
return R.layout.duo; //调用子布局
}
}