Android 自定义轮播图(Banner)

本文介绍如何在Android中实现一个自定义无限轮播图,包括无限循环的原理,自动轮播的实现以及指示器的设计。通过设置ViewPagerAdapter的getCount为MAX_VALUE并利用position对drawableList.size()取模实现无限循环;使用Handler定时切换ViewPager位置以达到自动轮播效果;自定义BannerItemView和BannerIndicator,并结合动画实现指示器的小圆点变化。源码已上传至GitHub,如觉得有用请帮忙star。
摘要由CSDN通过智能技术生成

先上图看效果:
在这里插入图片描述
知识要点:

  1. 轮播图是怎么做到无限循环的呢
    让ViewPagerAdapter里面的getCount返回MAX_VALUE,instantiateItem方法中,获取图片的时候,让position % drawableList.size(),来得到真实值

     @Override
     public int getCount() {
         return Integer.MAX_VALUE;
     }
    
     @NonNull
     @Override
     public Object instantiateItem(@NonNull ViewGroup container, int position) {
         if (drawableList != null && drawableList.size() > 0) {
             View imageView = null;
             if (mCache.isEmpty()) {
                 imageView = new ImageView(mContext);
             }else {
                 imageView = mCache.remove(0);
    
             }
             ((ImageView) imageView).setImageDrawable(drawableList.get(position % drawableList.size()));
             container.addView(imageView);
             return imageView;
         }
         return null;
    
     }
    
    </
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值