android 图片轮播(banner)无限轮播

Posted 摘星猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 图片轮播(banner)无限轮播相关的知识,希望对你有一定的参考价值。

先看效果

project  build.gradle:

buildscript 
    repositories 
        google()
        maven  url 'https://jitpack.io' 
        
    

app build.gradle

 implementation 'com.github.zhoulinxue:commonBanner:1.3.6'

代码:

 @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        for (int i = 0; i < mImages.length; i++) 
            ItemData picBanner = new ItemData();
            picBanner.setSrc(mImages[i]);
            mDatas.add(picBanner);
        
        mBanner = findViewById(R.id.banner_layout);
        Builder builder = new Builder(this);
        //Builder builder = Builder.getDefault(this);  //快捷设置
        //自定义 底部指示牌
        builder.setHeight(350)//设置banner 高度
                .setIndicatorHeight(80)//设置 导航游标 高度
//                .indicatorBelow() //设置游标和内容相对 位置  可选 默认 游标悬浮在 内容底部
                .setIndicatorItemSelectSrc(R.drawable.select_indicator)// 设置 指示器  item 颜色
                .setIndicatorItemUnSelectedSrc(R.drawable.selected_indicator)// 设置 indicator指示器  item 选中颜色
                .setIndicatorLayoutColor(R.color.indicator_bg) //设置 指示器 背景
                .setTransformer(Transformer.DETH) // 设置切换动画  新增10多种 动画  Transformer 类
                .setLoopType(LoopType.REVERSE)// 设置循环滚动方式
                .setAutoPlay(true) //是否自动滚动  可选 默认 不滚动
                .setDuration(300)// 设置 动画 持续时间(数字越大  切换动画越慢)
//                .setIndicator(new TextIndicator(this))// 自定义 指示器
                .setDelayTime(2000);// 设置滚动间隔时间
        mBanner.setBuilder(builder);
        //设置item 数据回调
        mBanner.setBannerAdapter(new SimpleBannerAdapter<ItemData>(R.layout.banner_item_layout, mDatas) 
            @Override
            protected void convert(ViewHolder holder, ItemData item) 
                //填充 item 数据
                ImageView imageView = (ImageView) holder.findViewById(R.id.banner_img);
                imageView.setImageResource(item.getSrc());
                holder.addItemViewClick(R.id.banner_tv);
            

            @Override
            public void onItemViewClick(View v) 
                // item 中 某个 View 被点击
                Toast.makeText(MainActivity.this, R.string.notice_str, Toast.LENGTH_SHORT).show();
            
        );
        //item 点击事件
        mBanner.OnBannerItemClickLisenter(new CommonBanner.OnBannerItemClickLisenter() 
            @Override
            public void onItemClick(View v, int position) 
                // item 被点击
                Toast.makeText(MainActivity.this, "position: " + position + " click ..... itemView", Toast.LENGTH_SHORT).show();
            
        );

        findViewById(R.id.animate_btn).setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                startActivity(new Intent(MainActivity.this, MultEffectActivity.class));
            
        );
    

    @Override
    protected void onPause() 
        super.onPause();
        mBanner.onPause();
    

    @Override
    protected void onRestart() 
        super.onRestart();
        mBanner.onRestart();
    

android studio  引用  

持续更新 1.3.6 版本 修复bug

 

源码地址   使用方法

以上是关于android 图片轮播(banner)无限轮播的主要内容,如果未能解决你的问题,请参考以下文章

Android----------- Banner2 广告图片轮播ViewPager2实现

Android----------- Banner2 广告图片轮播ViewPager2实现

Android-----------广告图片轮播控件

banner无限轮播

android-自定义广告轮播Banner(无限循环实现)

无限轮播Banner的实现原理