##double kill 在网上找了不少的viewpager无限轮播的例子,大部分都是Interger.MAX_VALUES 。 滑到最后一页的时候setCurrentItem(0) ,这样虽然实现了无限轮播,但是当从最后一页跳转到第一页的时候不够优雅。。通过google终于找到了答案:
将你的图片的list的前后各增加一张图片,并将最后一张图片放至图片的第一张,第一张图片 放至图片的最后一张,例如: List {ABCD} 改为{DABCDA} 这样滑到最后一张图片的时候会显示一张图片而不是突兀的跳过中间的几张图片。然后初始化viewpager的时候让他从第一张图片开始轮播:setCurrentItem(1)
核心代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Override
public void onPageScrolled (int i, float v, int i1) {
if (v == 0.0 ){
if (i == 0 ){
vp.setCurrentItem(mImageViews.length-2 ,false );
}
else if (i == mImageViews.length-1 )
{
vp.setCurrentItem(1 ,false );
}
}
}
##至此就实现了无限轮播。 附上轮播代码:1
2
3
4
5
6
7
8
9
10
11
12
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run () {
currentItem++;
if (currentItem== mImageViews.length) {
currentItem= 1 ;
}
mHandler.sendEmptyMessage(REFRESH_VP_CODE);
}}, 3000 , 3000 );