Android ViewPager实现图片轮播效果实现图片轮播效果
主要为大家详细介绍了Android ViewPager实现图片轮播效果,具有一定的参考价值,感兴趣的小伙伴们可以参考
一下
在app中图片的轮播显示可以说是非常常见的实现效果了,其实现原理不过是利用ViewPager,然后利用handler每隔一定的时
间将ViewPager的currentItem设置为当前item的position+1即可。先来看看效果图吧:
就是实现这样的一个轮播广告的效果。
因为这个是自己为了练习仿照某旅游类App做的,所以这里的数据是使用抓包工具抓取的,准备数据等工作就不在这里赘述
了,反正数据的添加大体都是相同的。我的思路是这样的,从网络上实时的获取数据(当然你也可以将数据写死),然后通过网
络工具类和json解析类完成对数据的解析与封装从List集合。根据集合的长度来决定ViewPager有多少page页面,下面的小圆
点有多少。在函数中首先要设置一个boolean类型的标志位,用来判断是否停止轮播的(我们要在此页面不可见(onStop()方
法内)的时候结束轮播),定义一个全局变量来记录当前的小圆点的位置。
private boolean isStop = false; //标志位,判断是否停止轮播
private int previousPointEnale = 0; //标记上一个小圆点的位置
然后我们就要为ViewPager的轮播做准备了,比如说动态的根据数据条目来生成小圆点,定义适配器等,代码如下:
/**
* banner的图片轮播事件初始化
*/
private void initCycleEvent() {
//根据解析到的图片的个数,初始化小圆点
LinearLayout.LayoutParams params;
for (int i = 0; i < imageViewList.size(); i++) {
View dot = new View(getActivity());
dot.setBackgroundResource(R.drawable.point_background);
params = new LinearLayout.LayoutParams(15, 15);
params.leftMargin = 10;
dot.setLayoutParams(params);
dot.setEnabled(false);
ll_dot_group.addView(dot);
}
//定义匿名适配器
adapter = new PagerAdapter() {
@Override
public int getCount() {
//因为要实现轮播,所以将数值设置的大一些
return Integer.MAX_VALUE;
}