ConvenientBanner广播栏的使用
2018-07-31 本文已影响63人
饮水思源为名
最近对广播栏进行了一次学习,因为要设计一个较为复杂的滚动广播。复杂在布局上并非单一的图片,而是有一个标题,然后又内容,然后是一个图片列表。
采用的ConvenientBanner来实现。
如何实现:
编写一个内部类实现Holder<T>。T是我们自己的Bean类。
//为了方便改写,来实现复杂布局的切换
private class LocalImageHolderView implements Holder<BannerBean> {
private View view;
private ImageView img1,img2,img3,img4;
private TextView tv_title,tv_content;
@Override
public View createView(Context context) {
//你可以通过layout文件来创建,不一定是Image,任何控件都可以进行翻页
view= LayoutInflater.from(context).inflate(R.layout.item_banner,null);
return view;
}
@Override
public void UpdateUI(Context context, int position, BannerBean data) {
tv_title= (TextView) view.findViewById(R.id.item_banner_title);
tv_title.setText(data.getTitle());
tv_content= (TextView) view.findViewById(R.id.item_banner_content);
tv_content.setText(data.getContent());
img1= (ImageView) view.findViewById(R.id.item_banner_img1);
img2= (ImageView) view.findViewById(R.id.item_banner_img2);
img3= (ImageView) view.findViewById(R.id.item_banner_img3);
img4= (ImageView) view.findViewById(R.id.item_banner_img4);
imageLoaderUtil.loadingImage(data.getImg1(),img1);
imageLoaderUtil.loadingImage(data.getImg2(),img2);
imageLoaderUtil.loadingImage(data.getImg3(),img3);
imageLoaderUtil.loadingImage(data.getImg4(),img4);
}
}
在这里我们可以对布局的内容进行设置。类似于Adapter。
private void bannerInit(){
//开始自动翻页
convenientBanner.setPages(new CBViewHolderCreator() {
@Override
public Object createHolder() {
return new LocalImageHolderView();
}
},localImages)
//设置指示器是否可见
.setPointViewVisible(true)
//设置自动切换(同时设置了切换时间间隔)
.startTurning(3000)
//设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设
.setPageIndicator(new int[]{R.mipmap.normol, R.mipmap.select})
//设置指示器的方向(左、中、右)
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL)
//设置点击监听事件
.setOnItemClickListener(ConvenientBannerActivity.this);
//设置手动影响(设置了该项无法手动切换)
// .setManualPageable(true);
}
在这里我们实现了我们的内部类,相当于导入了我们的布局。第二个参数是我们的数据内容。然后采用了建造者模式,对Banner进行设置。设置好后调用即可开始轮播。