直接上图
不知道怎么放动态图。
实现步骤
1、导入引入所需要的包
implementation 'com.youth.banner:banner:1.4.10' implementation 'com.github.bumptech.glide:glide:3.7.0'
2、xml布局文件
<com.youth.banner.Banner
android:id="@+id/banner1"
android:layout_width="wrap_content"
android:layout_height="200dp">
3、activity代码
activity代码
public class MainActivityextends AppCompatActivityimplements OnBannerListener {
Contextcontext;
Bannerbanner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
setBanner();
}
private void setBanner()
{
banner=findViewById(R.id.banner1);
List imgs=new ArrayList<>();
imgs.add(getStringFromDrawableRes(context,R.drawable.p1));
imgs.add(getStringFromDrawableRes(context,R.drawable.p2));
imgs.add(getStringFromDrawableRes(context,R.drawable.p3));
List titles =new ArrayList<>();
titles.add("教育图片1");
titles.add("教育图片2");
titles.add("教育图片3");
//设置内置样式,共有六种可以点入方法内逐一体验使用。
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//设置图片加载器,图片加载器在下方
banner.setImageLoader(new MyLoader());
//设置图片网址或地址的集合
banner.setImages(imgs);
//设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
banner.setBannerAnimation(Transformer.Default);
//设置轮播图的标题集合
banner.setBannerTitles(titles);
//设置轮播间隔时间
banner.setDelayTime(3000);
//设置是否为自动轮播,默认是“是”。
banner.isAutoPlay(true);
//设置指示器的位置,小点点,左中右。
banner.setIndicatorGravity(BannerConfig.CENTER)
//以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面。
.setOnBannerListener(this)
//必须最后调用的方法,启动轮播图。
.start();
}
@Override
public void OnBannerClick(int position) {
Log.i("tag", "你点了第"+position+"张轮播图");
}
//自定义的图片加载器
private class MyLoaderextends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load((String) path).into(imageView);
}
}
public static String getStringFromDrawableRes(Context context, int id) {
Resources resources = context.getResources();
String path = ContentResolver.SCHEME_ANDROID_RESOURCE +"://"
+ resources.getResourcePackageName(id) +"/"
+ resources.getResourceTypeName(id) +"/"
+ resources.getResourceEntryName(id);
return path;
}
//当返回到activity,继续
@Override
protected void onResume() {
super.onResume();
banner.start();
}
//activity停止
@Override
protected void onStop() {
super.onStop();
banner.stopAutoPlay();
}
4、运行即可!
注:
文章参考于
https://blog.csdn.net/qq_36621990/article/details/76020236
见前辈写我自己不太好理解,也为了加强自己的记忆,我该可以下,记下来了。
小白变成,不喜勿喷,谢谢,如有不足,多多指教。