android基础Android开发进阶学习区

ViewPager详解(二)广告轮播图

2016-10-04  本文已影响6453人  笑说余生

效果图

效果图

一、ViewPager填充图片

1.1 布局中申明

1.2 代码中设置页面数据

二、底部小圆点显示逻辑

原理分析:底部的小圆点时浮动在ViewPager上面的的,所以应该是一个RelativeLayout布局。
ViewPager页面切换时小圆点的颜色不一样,所以需要对小圆点做选择器,并且对ViewPager进行监听。

2.1 布局申明

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="120dp">

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="120dp"/>

        <LinearLayout
            android:id="@+id/pointgroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
          android:layout_centerHorizontal="true"
            android:layout_marginBottom="3dp"
            android:orientation="horizontal">
        </LinearLayout>


    </RelativeLayout>

2.2 制作小圆点颜色选择器

2.3 将小圆点添加到LinearLayout容器

三、小圆点随着ViewPager切换移动


经过前面的三步设置后就能显示一个简单的广告条了,这里再对其添加一个滑动到最后一页后再滑还能滑动到首页的功能。

四、无限滑动的ViewPager

实现原理: ViewPager之所以滑动到左右能显示页面,其实是因为左右都存在即将要显示的页面。当左右有很多页面时我们就能一直滑动,没有时就不能滑动。所以原理就是让ViewPager的左右都有很多的页面。

4.1 修改getCount方法

4.2 修改instantiateItem方法

4.3 修改ViewPager监听器里的onPageSelected

修改之后,ViewPager当前页的右边就有了无数的页面,但是因为%了mList.size(),就只会显示mList.size()的大小,这样就实现了无限滑动轮播

五、无限自动轮播的广告图

实现原理:在前面四步的基础上,在代码里添加一个Handler,不断的给自己发消息就好了。

mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            int currentPosition = viewPager.getCurrentItem();

            if(currentPosition == viewPager.getAdapter().getCount() - 1){
                // 最后一页
                viewPager.setCurrentItem(0);
            }else{
                viewPager.setCurrentItem(currentPosition + 1);
            }

            // 一直给自己发消息
            mHandler.postDelayed(this,5000);
        }
    },5000);    

自定义带动画无限自动轮播的Banner控件


个人主页
Demo下载地址

以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。

上一篇 下一篇

猜你喜欢

热点阅读