效果如下所示:
(请忽略下方的GridView)
banner的使用其实很简单,就三个步骤:
- 引入包:
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'jp.wasabeef:glide-transformations:4.0.1'
implementation 'com.youth.banner:banner:1.4.10'
- 简单定义图片加载器
package com.example.edm.Utils;
import android.content.Context;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader;
/**
* Created by KI on 2020/9/5.
*/
public class GlideImageLoader extends ImageLoader {
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
- 初始化banner
private void initBanner(View v) {
ArrayList<Integer> list = new ArrayList<>();
list.add(R.drawable.ncepu_1);
list.add(R.drawable.ncepu_2);
list.add(R.drawable.ncepu_3);
list.add(R.drawable.ncepu_4);
list.add(R.drawable.ncepu_5);
banner = v.findViewById(R.id.banner);
//设置banner样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//设置指示器位置(当banner模式中有指示器时)
banner.setIndicatorGravity(BannerConfig.CENTER);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(list);
//设置banner动画效果
banner.setBannerAnimation(Transformer.Default);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(3000);
banner.start();
}
布局文件:
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="180dp"
app:indicator_height="6dp"
app:indicator_margin="5dp"
app:indicator_width="6dp">
</com.youth.banner.Banner>