关于Android轮播图实现的一点思索

我们在编写Android程序的时候,项目中或多或少都会有一个地方会用到轮播图,关于轮播图的实现,方案有很多种,今天我们就来说说轮播图是怎么实现的。

1.关于轮播图的实现,首先我们要解决这样几个问题,图片要能够实现左右滑动,图片要能够自动播放,还能够无限循环,还要实现相应的小圆点。好的说到这里,我们已经基本有一个大致的思路了,这个思路的前提就是去解决提出的这些问题。

我们是这样想的,要实现图片左右滑动,我们自然而然的会想到android中的viewpager跟recyclerview两个控件,两个控件都可以实现左右滑动。好的第一个问题解决了,要实现图片自动播放,即要求实现实现图片有定时的功能,即间隔一段时间,滑动一张图片,这里我们可以写一个定时器,当到达一定时间的时候,自动切换一张图片,当然我们也可以使用handler来解决这个问题,同样handler也可以达到要求。达到无限循环,对于这个无限循环我们这里考虑将viewpager适配器里的getCount()方法返回一个较大的值,根据viewpager的源码来看这里是不会有啥影响的,这样我们就可以实现无限循环,但是我们还是要设置,无限循环里显示的真实的位置。比如这样我们要计算图片轮播的真是位置在Activity里

接下来的问题是小圆点的实现,我们先来看段代码:

我们可以看到这里我们新建了一个view并对这个view设置了相应的大小参数,和背景图,然后将这个view放进了我们事先写好的Linarlayout中,随后我们做了这样的操作。

根据滑动来设置小圆点的不同背景。

好到这里我们还需要解决一个问题就是当我们自己滑动的时候,还是会出现自动切换的情况,那有没有解决的办法呢?

方法肯定是有的,我们可以重写一下viewpager的onTouchEvent()事件,新建一个类继承自viewpager,重写他的onTouchEvent()方法。

关于实现自动轮播的话我们可以使用handler来实现

关于小圆点的实现,我们可以使用图片,也可以自己在drawable文件里写一个shape的文件,来达到我们的效果。

比如写一个这样的实现

好的今天的文章就叙述到这里。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值