直接用依赖包吧
implementation 'com.youth.banner:banner:2.1.0'
使用方法:
xml布局的组件
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="110dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="100dp"
android:layout_marginRight="10dp"
app:banner_loop_time="2000"
app:banner_radius="15dp" />
代码部分:
Banner mBanner;
使用list集合来存储图片,泛型就是int
List<Integer> list;
list = new ArrayList();
list.add(R.drawable.sk2);
list.add(R.drawable.sk2);
直接配置适配器
这里只介绍简单的方法,没有专门去写适配器的界面,因为banner其实是自带适配器的
就是BannerImageAdapter(集合的名字),如果不需要特殊功能完全可以用自带的适配器的
mBanner.setAdapter(new BannerImageAdapter<Integer>(list) {
@Override
public void onBindView(BannerImageHolder holder, Integer data, int position, int size) {
holder.imageView.setImageResource(data);
}
});
//点击事件的处理
mBanner.setOnBannerListener(new OnBannerListener() {
@Override
public void OnBannerClick(Object data, int position) {
Toast.makeText(getContext(), "点击了" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
}
});
完整代码演示
Banner mBanner;
List<Integer> LBlist;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LBlist = new ArrayList();//数据初始化
list.add(R.drawable.sk2);
list.add(R.drawable.sk2);
mbanner=findViewById(R.id.mbanner);//寻找组件
mBanner.setAdapter(new BannerImageAdapter<Integer>(LBlist) {
@Override
public void onBindView(BannerImageHolder holder, Integer data, int position, int size) {
holder.imageView.setImageResource(data);
}
});
mBanner.setOnBannerListener(new OnBannerListener() {
@Override
public void OnBannerClick(Object data, int position) {
Toast.makeText(getContext(), "点击了" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
}
});
}