Android ViewPager 实现自动滚动效果

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的索引的判断,然后根据你需要的效果去写判断添加,这边我的判断条件是,达到最大在返回。
这就是我们的全部代码了。十分的简单。

看一下运行效果

原文地址:https://www.cnblogs.com/cao-1/p/12105464.html

时间: 2024-08-02 17:43:03

Android ViewPager 实现自动滚动效果的相关文章

课堂笔记-----页面的自动滚动效果

页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee标记不仅可以移动文字,也可以移动图片,表格等. 语法:<marquee >...</marquee>: 说明:在标记之间添加要进行滚动的内容. 重要属性: 1.滚动方向direction(包括4个值:up. down. left和 right) 语法:<marquee direc

页面的自动滚动效果

页面的自动滚动效果,可由javascript来实现,但是今天无意中发现了一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee标记不仅可以移动文字,也可以移动图片,表格等. 语法:<marquee>...</marquee>: 说明:在标记之间添加要进行滚动的内容. 重要属性: 1.滚动方向direction(包括4个值:up. down. left和 right) 语法:<marquee

Android 实现ListView不可滚动效果

希望得到的效果是ListView不能滚动,但是最大的问题在与ListView Item还必有点击事件,如果不需要点击事件那就简单了,直接设置ListView.setEnable(false); 如果还需要点击事件,滚动与点击都是在ListView Touch处理机制管理. ListView点击事件是复用ViewGroup的处理逻辑,当用户点击视图并且按下与抬起手指之间移动距离很小,满足点击事件的时间长度限制,就会触发点击事件. ListView滚动事件是自己处理,有两个判断条件,当用户触发mov

实现当UILable的内容超出其范围后自动滚动效果

本文主要介绍 [当UILabel的内容超出其自身的宽度范围后,进行互动展示的效果],我们先来看一下Demo的效果图. 实际实现起来并不十分繁杂,在这里,为了开发的效率,我们使用了一个已经封装好的UILabel控制类CBAutoScrollLabel:点击“阅读原文”下载. 在写代码之前,我们还有一个准备工作,在stroyBoard中,找到需要实现效果的viewController,并向需要展示滚动效果label的地方拖一个UIView空间,并将其大小确定好(范围和之前需要展示滚动效果的label

20150620文本自动滚动效果

html====== <div class="demo1"> <h3>文本框中的文字自动滚动</h3> <div id="roll" data-rwidth="100" data-rheight="100" class="roll"> <ul id="ul" class="list" style="&qu

详细分析Android viewpager 无限循环滚动图片

由于最近在忙于项目,就没时间更新博客了,于是趁着周日在房间把最近的在项目中遇到的技术总结下.最近在项目中要做一个在viewpager无限滚动图片的需求,其实百度一下有好多的例子,但是大部分虽然实现了,但是讲的都不清楚,我查了很多资料,我就知道position/list.size().但是怎么用,我还是不明白.我后来看了百度工程师任玉刚的循环广告位组件的实现突然明白了无限滚动的原理.总结如下: 1.要在int getCount() 方法里 写 return BANNER_SIZE.  这个 BAN

自动滚动的Textview

又到了写博博的时候了!大家还好吧! 开始做机顶盒了,所以这里就有很多的界面需要做成一个自动化的界面.因为遥控盒手机触摸毕竟不一样咯!这里而且要方便大众的视觉体验的话,我们必须要考虑到这些因素.当然,我觉着,这次的自动滚动效果一定对大家也很有帮助的哦! 我们只要写一个类来继承我布局文件里面写的一个TextView就ok啦. package com.example.myscroltextview.view; import java.util.ArrayList; import android.con

2016/2/26 &lt;marquee&gt;&lt;/marquee&gt;实现多种滚动效果

页面的自动滚动效果,可由javascript来实现,但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标记不仅可以移动文字,也可以移动图片,表格等.语法:<marquee>...</marquee>: 说明:在标记之间添加要进行滚动的内容.重要属性:1.滚动方向direction(包括4个值:up. down. left和 right) 语法:<marquee direction=&

HTML标签marquee实现滚动效果

HTML标签marquee实现滚动效果 转载自:http://www.cnblogs.com/zzuIvy/p/marqueeTest_1.html 页面的自动滚动效果,可由javascript来实现,但是今天无意中发现了一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee标记不仅可以移动文字,也可以移动图片,表格等. 语法:<marquee>...</marquee>: 说明:在标记之间添加要