Android Banner 现实自动轮播 ,小圆点 标题

Android Banner 现实自动轮播 ,小圆点 标题

Android Banner 现实自动轮播 ,小圆点 标题

Android Banner 现实自动轮播 ,小圆点 标题

效果图如上,这里用到的是youth5201314 的banner 更具体可以前往链接查看

添加banner依赖:

    implementation 'com.youth.banner:banner:1.4.9'
    implementation 'com.github.bumptech.glide:glide:3.7.0'

对应布局:

<com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/dp_180" />

下面来看具体的代码实现:

public class MainActivity extends AppCompatActivity implements OnBannerListener {
    Banner banner;

    private ArrayList<String> list_path;//这里需要注意 标题和图片使用ArrayList的数组接收

    private ArrayList<String> list_title;//需要把数据遍历保存在string数组中

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        banner = findViewById(R.id.banner);
        
        initView();
    }


    private void initView() {

        banner = (Banner) findViewById(R.id.banner);

        //放图片地址的集合

        list_path = new ArrayList<>();

        //放标题的集合
        list_title = new ArrayList<>();
        
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg");

        list_title.add("好好学习");
        list_title.add("天天向上");
        list_title.add("热爱劳动");
        list_title.add("不搞对象");

        //设置内置样式,共有六种可以点入方法内逐一体验使用。
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);

        //设置图片加载器,图片加载器在下方
        banner.setImageLoader(new MyLoader());

        //设置图片网址或地址的集合
        banner.setImages(list_path);

        //设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
        banner.setBannerAnimation(Transformer.Default);

        //设置轮播图的标题集合
        banner.setBannerTitles(list_title);

        //设置轮播间隔时间
        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 MyLoader extends ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            Glide.with(context).load((String) path).into(imageView);
        }
    }

还要加代码混淆,防止在release版本出现异常(正式环境报错)

# glide 的混淆代码
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
        public *;
    }
# banner 的混淆代码
-keep class com.youth.banner.** {*;}

书到用时方恨少,纸上得来终觉浅。共勉。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114968.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mycat实现读写分离_mycat分表规则

    mycat实现读写分离_mycat分表规则主从复制,读写分离,Mycat中间件

    2022年10月13日
    0
  • siamfc代码解读_SiamFC算法改进思路「建议收藏」

    siamfc代码解读_SiamFC算法改进思路「建议收藏」视频追踪问题中,目标通常是连续可微的。SiamFC利用全卷积孪生网络结构对搜索域和样本图像进行相似度匹配,实现追踪目标。本文分析了SiamFC在vot2015数据集上的追踪结果,总结出以下问题,并提出针对性的改进方案。表现鲁棒小范围晃动运动模糊短时局部遮挡重点问题光照变化视频中白色猫由亮处转入阴影中,跟踪结果开始出现偏差。光照条件较差,而且目标的衣服为黑色,与背景相似。特征不够明显。形变、尺度变换…

    2022年9月28日
    1
  • JUnit 5和JUnit 4比较

    JUnit 5和JUnit 4比较JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。1. JUnit 5 vs JUnit 4 – 注释两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。特征 JUNIT 4 JUNIT 5 声明一种测试方法 …

    2022年6月13日
    69
  • python 关键字「建议收藏」

    python 关键字「建议收藏」1.and,orand,or为逻辑关系用语,Python具有短路逻辑,Falseand返回False 不执行后面的语句,Trueor直接返回True,不执行后面的语句

    2022年7月6日
    20
  • 常见的计算机病毒种类有,五种常见的计算机病毒种类有哪些

    常见的计算机病毒种类有,五种常见的计算机病毒种类有哪些五种常见的计算机病毒种类有系统病毒、蠕虫病毒、木马病毒、脚本病毒、宏病毒。计算机病毒(ComputerVirus)是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。计算机病毒是人为制造的,有破坏性,又有传染性和潜伏性的,对计算机信息或系统起破坏作用的程序。它不是独立存在的,而是隐蔽在其他可执行的程序之中。计算机中病毒后,轻则影响机…

    2022年5月3日
    57
  • 制作initramfs镜像_原版镜像和引导镜像

    制作initramfs镜像_原版镜像和引导镜像Linuxkernel在自身初始化完成之后,需要能够找到并运行第一个用户程序(这个程序通常叫做“init”程序)。用户程序存在于文件系统之中,因此,内核必须找到并挂载一个文件系统才可以成功完成系统的引导过程。在grub中提供了一个选项“root=”用来指定第一个文件系统,但随着硬件的发展,很多情况下这个文件系统也许是存放在USB设备,SCSI设备等等多种多样的设备之上,如果需要正确引导,US

    2022年8月11日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号