Android ViewPager 实现自动滚动效果

时间:2022-05-12 06:05:28

Android 中使用ViewPager 并实现自动滚动效果。

学习自:自己研究

OverView

我们在很多软件中都见过一下的效果,他的效果就是在在 APP的顶部会个自动滚动的View在滑动,那么我们看一下如何使用他吧。

ViewPager的自动滚动效果

在 2019-12-27 日 我发过一篇 Android 中如何使用ViewPager的文章,如果你还不会ViewPager的基础使用,那么我觉得你可以去看一下.链接

好了不多废话,我们看一下如何去实现ViewPager的自动滚动的效果。
这边我是用到了:
1.Timer
2.TimerTask
3.Handler
接着让我们先看一下源代码吧:

void GetTheViewPagerRoll() {
    AllCount = viewList.size();
    Timer timer = new Timer();
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            Log.d("NowCountAll=", String.valueOf(AllCount));
            if (CountNow == AllCount - 1) {
                isMax = true;
            }
            if (CountNow == 0) {
                isMax = false;
            }
            if (isMax) {
                hander.sendEmptyMessage(2);
                CountNow--;
            } else {
                hander.sendEmptyMessage(1);
                CountNow  ;
            }
        }
    };
    timer.schedule(timerTask, 1000, 1000);
}
Handler hander = new Handler() {
    @Override
    public void handleMessage(@NonNull Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {
            case 1: {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        viewPager.setCurrentItem(CountNow);
                        Log.d("NowCount1=", String.valueOf(CountNow));
                    }
                });
            }
            break;
            case 2: {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        viewPager.setCurrentItem(CountNow);
                        Log.d("NowCount2=", String.valueOf(CountNow));
                    }
                });
            }
            break;
        }
    }
};

这就是我们的全部代码了。

源码分析

看完了我们的源代码,接着就让我们是来分析一波。!
其实他十分的简单,我们通过计时器的功能,每隔几秒就回去进行当前的的item的索引的判断,然后根据你需要的效果去写判断添加,这边我的判断条件是,达到最大在返回。
这就是我们的全部代码了。十分的简单。

看一下运行效果

Android ViewPager 实现自动滚动效果