android viewpager滑动图片轮播,使用ViewPager实现图片轮播

本文介绍了如何使用ViewPager在Android中实现自动播放、无限滑动、拖拽暂停及带有动画效果的指示器的图片轮播功能。通过在前后添加额外页卡实现无限滑动,使用Handler进行定时切换,并在滑动时暂停自动播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

首先我们来看一下运行的效果,如下所示:

c083aa9ddd83?from=singlemessage

这是在我们的项目中经常会用到的图片轮播效果,一般用于广告图片的展示。

它要求主要实现以下功能:

1)自动播放;

2)无限滑动;

3)手指拖拽图片时暂停自动轮播,松开后继续自动轮播;

4)含动画效果的小圆点指示器。

本文将介绍利用ViewPager实现无限轮播图片,图片下方加上小圆点指示器标记当前位置,并利用Handler实现自动轮播图片。

正文

1、实现自动播放

思路:没隔一段时间让ViewPager更换一次页卡,使用Handler来实现。

1)标记是否自动播放

private boolean isAutoPlay;

2)每隔一段时间使用Handler发送一次更换页卡的任务

// 如果少于2张就不用自动播放了

if (count < 2) {

isAutoPlay = false;

} else {

isAutoPlay = true;

handler = new Handler();

handler.postDelayed(task, delay);

}

3)在任务中每隔一段时间再次发送任务,这样循环发送就实现了自动播放的效果。

private Runnable task = new Runnable() {

@Override

public void run() {

if (isAutoPlay) {

// 位置循环

currentItem = currentItem % (count + 1) + 1;

// 正常每隔3秒播放一张图片

vpImageTitle.setCurrentItem(currentItem);

handler.postDelayed(task, delay);

} else {

// 如果处于拖拽状态停止自动播放,会每隔5秒检查一次是否可以正常自动播放。

handler.postDelayed(task, 5000);

}

}

};

2、实现无限滑动

思路:设置页卡视图列表时,在前后额外各加一个页卡。最前面加最后一张图片,最后面加第1张图片。然后每当切换到最前的页卡时,就替换成倒数第2个页卡;每当切换到最后的页卡时,就替换成第2个页卡。这样一来就形成了连贯,自然实现了无限滑动的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值