github地址:
https://github.com/Bigkoo/Android-ConvenientBanner
下面我只做了图片的轮播、从网络获取图片。
功能很强大,自己挖掘吧。
依赖:
dependencies {
implementation 'com.bigkoo:ConvenientBanner:2.1.4'
}
布局//canLoop是否循环
<com.bigkoo.convenientbanner.ConvenientBanner
android:id="@+id/convenientBanner"
android:layout_width="match_parent"
android:layout_height="160dp"
app:canLoop="true" />
逻辑处理
mConvenientBanner =headView.findViewById(R.id.convenientBanner);
mConvenientBanner.setPages(
new CBViewHolderCreator() {
@Override
public NetWorkImageHolderView createHolder(View itemView) {
return new NetWorkImageHolderView(getContext(), itemView);
}
@Override
public int getLayoutId() {
return R.layout.item_head_image;
}
}, getImages())
.setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT)//指示器位置
.setPageIndicator(new int[]{R.drawable.indicator_normal, R.drawable.indicator_select});//两个指示器
//设置点击事件
mConvenientBanner.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(int position) {
ToastUtils.showShort("目标" + position);
}
});
//开始轮播 2000时间间隔
mConvenientBanner.startTurning(2000);
指示器圆点
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/tab_select_color" />
<corners android:radius="5dip" />
<size
android:width="6dp"
android:height="6dp" />
</shape>
网络获取图片 NetWorkImageHolderView
public class NetWorkImageHolderView extends Holder<String> {
private ImageView headBannerImage;
private Context mContext;
private NetWorkImageHolderView(Context context, View itemView) {
super(itemView);
mContext = context;
}
@Override
protected void initView(View itemView) {
headBannerImage =itemView.findViewById(R.id.head_banner_img);
}
@Override
public void updateUI(String data) {
GlideUtils.loadImage(mContext, data, headBannerImage);
}
}
网友评论