之前发过了Banner1 广告图片轮播了,现在使用了Banner2,非常不错,来分享一下。

Banner广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!

主要改进功能介绍

  • 使用了ViewPager2为基础控件
  • 支持了androidx兼容包
  • 方便了UI、Indicator自定义
  • 支持画廊效果、魅族效果
  • 兼容了水平和垂直轮播,也可以实现类似淘宝头条的效果
  • 依赖包目前只需要导入了ViewPager2

先来看看效果图:

使用你可以直接引入依赖:

implementation 'io.github.youth5201314:banner:2.2.2'

gradle

repositories {maven { url "https://s01.oss.sonatype.org/content/groups/public" }
}

使用

<com.youth.banner.Bannerxmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/banner"android:layout_width="match_parent"android:layout_height="高度自己设置" />

添加权限到你的 AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" /> 

Banner具体方法调用,继承BannerAdapter,和RecyclerView的Adapter一样(如果你只是图片轮播也可以使用默认的,demo中有很多的Adapter,可以下载查看)

/*** 自定义布局,下面是常见的图片样式,更多实现可以看demo,可以自己随意发挥*/
public class ImageAdapter extends BannerAdapter<DataBean, ImageAdapter.BannerViewHolder> {public ImageAdapter(List<DataBean> mDatas) {//设置数据,也可以调用banner提供的方法,或者自己在adapter中实现super(mDatas);}//创建ViewHolder,可以用viewType这个字段来区分不同的ViewHolder@Overridepublic BannerViewHolder onCreateHolder(ViewGroup parent, int viewType) {ImageView imageView = new ImageView(parent.getContext());//注意,必须设置为match_parent,这个是viewpager2强制要求的imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);return new BannerViewHolder(imageView);}@Overridepublic void onBindView(BannerViewHolder holder, DataBean data, int position, int size) {holder.imageView.setImageResource(data.imageRes);}class BannerViewHolder extends RecyclerView.ViewHolder {ImageView imageView;public BannerViewHolder(@NonNull ImageView view) {super(view);this.imageView = view;}}
}

Banner使用中优化体验

如果你需要考虑更好的体验,可以看看下面的代码

public class BannerActivity {//方法一:自己控制banner的生命周期@Overrideprotected void onStart() {super.onStart();//开始轮播banner.start();}@Overrideprotected void onStop() {super.onStop();//停止轮播banner.stop();}@Overrideprotected void onDestroy() {super.onDestroy();//销毁banner.destroy();}//方法二:调用banner的addBannerLifecycleObserver()方法,让banner自己控制protected void onCreate(Bundle savedInstanceState) {//添加生命周期观察者banner.addBannerLifecycleObserver(this);}
}

项目地址: https://github.com/youth5201314/banner

Android----------- Banner2 广告图片轮播ViewPager2实现相关推荐

  1. Android广告图片轮播,支持无限循环和设置轮播样式、切换时间等

    Android-----------广告图片轮播控件 Banner广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间.位置.图片加载框架等! 很多Android AP ...

  2. Jquery 广告图片轮播切换

     要点: 1.鼠标移至图片上出现左右箭头,鼠标移出图片时,左右箭头消失 2.单击左右箭头时,显示上一个/下一个图片,当前数字背景为橙色,其他数字背景为#333333,第一个/最后一个图片显示时,单击箭 ...

  3. 使用jQuery快速高效制作网页交互特效 第五章 上机练习四 制作广告图片轮播切换效果

    轮播应有的功能大致都有,分享给一些在学的朋友参考学习. <!DOCTYPE html> <html> <head lang="en"><m ...

  4. jQuery实现广告图片轮播切换

    <!DOCTYPE html> <html> <head lang="en"><meta charset="UTF-8" ...

  5. android设计轮播功能按钮,Android TV HorizontalScrollView 图片轮播 遥控器上下按键的处理...

    当前位置:我的异常网» Android » Android TV HorizontalScrollView 图片轮播 遥控器 Android TV HorizontalScrollView 图片轮播 ...

  6. Android fragment中广告图片轮播效果的实现(附图 )

    作者刚刚接触android小白一枚,这是本人在CSDN上写的第一篇博客..出于写博客的目的:一也是最重要的想让像我这样的android初学者少走点弯路,本以为这个功能实现起来挺简单的,但是项目要求在f ...

  7. 【Android】首页图片轮播效果(淘宝、京东首页广告效果)

    目前很多APP中都有这个图片轮播的功能,项目中也时常会用到,图片轮播一般是在用户不主动进行切换的时候每隔一段时间进行自动切换,用户主动切换时停止自动切换,手指离开时重新计时开始轮播,下面我们就来实现这 ...

  8. android banner加载布局,Android知识点之图片轮播控件Banner

    Rate this post 在我们来发Android项目时,经常有图片或者广告的轮播功能的需求,下面将介绍一款Android开发时使用的开源图片轮播控件Banner,同时按序讲解如何使用配置这款控件 ...

  9. android 图片轮播组件,Android客户端实现图片轮播控件

    本文和大家一起写一个Android图片轮播控件,供大家参考,具体内容如下 1. 轮播控件的组成部分 我们以知乎日报Android客户端的轮播控件为例,分析一下轮播控件的主要组成: 首先我们要有用来显示 ...

最新文章

  1. python全栈开发总结_python全栈开发 * 12 知识点汇总 * 180530
  2. hplaserjet1022老提示打印错误,hp laserjet 1022 在win7上正确的安装步骤
  3. 通用技术和信息技术合格考知识点_高二信息与通用技术会考知识点
  4. uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能
  5. 前端学习(3253):react脚手架文件介绍
  6. PHP--字符串处理函数
  7. aotu.js 动态运行脚本_素材丨一键生成动态LOGO,3000+个样式随你选!
  8. Leetcode每日一题:402.remove-k-digits(移掉k位数字)
  9. sql server alter权限_SQL
  10. UVa1225 - Digit Counting
  11. getRequestDispatcher 和sendRedirect区别及路径问题
  12. Android 工具:TraceView
  13. 误差传递公式(law of propagation of uncertainties)
  14. 计算机网络最短路径算法SPF,spf算法(spf算法计算最短路径)
  15. 修复未能连接一个window服务器,未能连接一个windows服务的修复方法
  16. 【小程序“600002“】现象:小程序测试版能正常的进行页面跳转,正式版不能进行页面跳转
  17. [Linux]在Linux上部署Java开发环境笔记(一)-- 补充:Linux下如何手动设置IP及配置DNS服务
  18. Centos 7 系统修改终端背景为黑底白字
  19. 今年国庆,我选择给自己充电
  20. 如何给OpenWrt打patch补丁

热门文章

  1. 高等代数 具有度量的线性空间(第10章)4 酉空间,酉变换,埃尔米特变换,正规变换
  2. 如何正确选择注塑模具浇口位置?这下真的懂了
  3. 安装ie9提示未能完成安装_win7系统安装Ie提示“Internet explorer未能完成安装”的解决方法...
  4. QFS文件系统-学习记录
  5. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速【转】
  6. 云服务器突发性能实例t5与通用型服务器的区别?
  7. 绕过AMSI详细指南:如何利用DLL hijack轻松绕过AMSI
  8. 一名理想主义的程序员
  9. 时下几款著名的游戏引擎介绍,也许你只听说过“虚幻引擎”
  10. wifi密码公式计算机,用定积分知识破译wifi密码,数学知识什么时候能派上用场?...