用Banner实现自动轮播图,带有标题和页码。
效果图
首先需要导入依赖!
implementation 'com.youth.banner:banner:1.4.10'
接下来就是布局了
<com.youth.banner.Banner android:id="@+id/bann"
android:layout_width="match_parent"
android:layout_height="200dp"
></com.youth.banner.Banner>
java代码
Banner banner=findViewById(R.id.bann);
//找到Banner
ArrayList<String> img=new ArrayList();
for (int i=0;i<3;i++){//可以使用网络解析,我就给默认了
img.add(图片网址);
}
ArrayList<String> title=new ArrayList();
for (int i=0;i<3;i++){//可以使用网络解析,我就给默认了
title.add(图片标题);
}
//标题集合有多长,图片集合就得有多长。
banner.setImages(img);//banner需要一个内容是网址的集合
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
String s = (String) path;
Glide.with(Fragment_shi.this).load(s).into(imageView);//**注意**!,这是解析图片
的一种方式想要使用的可以导入依赖{implementation 'com.github.bumptech.glide:glide:3.8.0'} 导完以后就可以使用了。
}
});
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//设置页码与标题
//这里可以改变页码的样式,可以自己试试BannerConfig.
banner.setBannerTitles(title);//设置标题,参数是一个String类型的集合
banner.isAutoPlay(true);//设置是否持续轮播
banner.setDelayTime(2000);//设置每次轮播的时长
banner.start();//代码执行
有小伙伴可能就要想到了,点击图片事件呢?
下面就是图片的点击事件
banner.setOnClickListener(this);
@Override
public void onClick(View view) {
switch (view.getId()){
case 0:
break;
case 1:
break;
case 2:
break;
}
}
对应的就是各个图片的点击事件。
希望对你有帮助。