viewpager实现简单的轮播效果

画廊效果的ViewPager实现(附带无限自动轮播) 废话不多说,先上效果图 根据效果所示,第一步实现适配器,完成无限循环 首先做数据上的处理 public static class LoopViewPagerAdapter extends PagerAdapter{ ..... LoopViewPagerAdapter(Context context, ArrayList<Integer> imgIds){ ... 阅读详情

关于viewpager轮播效果网上有很多的介绍,主流的方法基本就是几种:
1、给getCount返回一个很大的数比如Integer.MAX_VALUE,然后给用户一种无限循环的效果。
2、使用定时器 配合handler 实现循环轮播效果。
3、单纯使用Handler实现。
4、号称“真正”实现无限轮播效果,确实效果不错。上一张原理图,需要的具体自行搜索吧。

  1. 列表内容

(手残…… 忽喷)

我要说的是第二种,个人感觉比较简单的一种(第一种我不能接受……强迫症):
上主要代码:

private boolean isAutoPlay = true;
    在初始化页面的时候
    if(isAutoPlay){
        startPlay();
    }

    /**
     * 开始轮播图切换
     * scheduleAtFixedRate参数设置里可以改变轮播的时间间隔和执行时间
     * 我设置的单位是秒
     */
    private void startPlay() {
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
        scheduledExecutorService.scheduleAtFixedRate(new ViewShowTask (), 2, 3, TimeUnit.SECONDS);
    }

    /**
     * 执行轮播图切换任务
     * 使用handler切换
     */
    private class ViewShowTask implements Runnable {

        @Override
        public void run() {
            synchronized (mViewPager) {
                currentItem = (currentItem + 1) % topCourseList.size();
                handler.obtainMessage().sendToTarget();
            }
        }

    }
        //Handler
    private Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            //自动轮播到最后一页的时候 无动画切换到第一页
            // 这里我偷了懒 在从最后一页切换到第一页的时候,不使用切换效果,看起来就像是在无限循环 但是效果没有上边提到的其他方法的效果好
            if (currentItem == 0) {
                mViewPager.setCurrentItem(currentItem, false);
            } else {
                mViewPager.setCurrentItem(currentItem);
            }
        }

    };

下边是在轮播过程中 如果用户手动滑动时候的处理:

/**
     * ViewPager的监听器
     * 当ViewPager中页面的状态发生改变时调用
     */
    private class MyPageChangeListener implements ViewPager.OnPageChangeListener {

        boolean isAutoPlay = false;

        @Override
        public void onPageScrollStateChanged(int arg0) {
            switch (arg0) {
                case 1:// 手势滑动
                    isAutoPlay = false;
                    break;
                case 2:// 界面切换中
                    isAutoPlay = true;
                    break;
                case 0:// 滑动结束,即切换完毕或者加载完毕
                    // 当前为最后一张,此时从右向左滑,则切换到第一张
                    if (mViewPager.getCurrentItem() == mViewPager.getAdapter().getCount() - 1 && !isAutoPlay) {
                        mViewPager.setCurrentItem(0, false);
                    }
                    // 当前为第一张,此时从左向右滑,则切换到最后一张
                    else if (mViewPager.getCurrentItem() == 0 && !isAutoPlay) {
                        mViewPager.setCurrentItem(mViewPager.getAdapter().getCount() - 1, false);
                    }
                    currentItem = mViewPager.getCurrentItem();
                    //记录当前的页码
                    break;
                default:
                    break;
            }
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {

        }

        @Override
        public void onPageSelected(int pos) {

        }

    }
    mViewPager.setOnPageChangeListener(new MyPageChangeListener());
//如果使用了ViewPagerIndictor    则要给Indictor设置监听
//mIndictor.setOnPageChangeListener(new MyPageChangeListener());

关于滑动的几种状态请看本人另一篇博文:http://blog.youkuaiyun.com/codenoodles/article/details/50706821

部分代码借鉴的网上大神的代码,翻了半天没找到原作者,如果有问题 请告诉我。需要注意的是 在手动滑动之后,页码不再是之前自动轮播的顺序,这个时候需要在滑动结束之后保存一下页码, currentItem = mViewPager.getCurrentItem();不然会出现顺序混乱。

有问题或者不足,欢迎留言指正。 顺便提一下老大的QQ群:454430053 欢迎小伙伴们加入。

Zview软件.rar 阻抗分析软件 立即下载

相关推荐

Zview软件,阻抗数据分析软件

Zview,可直接读取并导出输力强测试的阻抗谱,并对电化学阻抗进行拟合

ViewPager实现一个无限轮播的轮播图自定义view

上节我们实现了一个图片可以无限滑动的ViewPager,这一节我们需要自定义一个ViewPager来实现我们想要展现的布局 首先我们需要建一个包,然后新建一个java类,名字随便起 这个类我们需要随便继承自一个viewGroup就行,viewGroup就是可以存放子控件的view,我们的各种layout,比如LinearLayour或者RelativeLayout这种可以在里面放东西的view,而TextView或者ImageView这种只能放内容而不能放其他view的就是普通view 然后我们选

qq_42890648的博客 1688

zview阻抗分析软件

电化学阻抗分析软件,可以拟合电阻 电容,串联,等

android 使用viewpager实现图片轮播效果

第一步:创建xml布局,如下图所示; <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" a

julicliy的博客 5148

保姆级教程:用WorkVisual 6.0给你的KUKA机器人硬件做一次‘全身体检’与配置检查

本文详细介绍了如何使用WorkVisual 6.0对KUKA机器人进行全面的硬件诊断与配置检查。从环境准备到核心硬件模块检查,再到安全系统合规性验证,提供了保姆级教程,帮助技术团队快速掌握数字化诊断方案,提升工业机器人的健康管理效率。

weixin_27298377的博客 277

Ubuntu22.04+Docker一键部署Autoware Universe避坑指南(附鱼香ROS配置)

本文详细介绍了在Ubuntu22.04系统中使用Docker一键部署Autoware Universe的完整流程,包括鱼香ROS工具链配置、Docker环境优化及VSCode开发环境集成。通过实战指南帮助开发者快速搭建自动驾驶开发环境,解决常见部署问题,提升开发效率。

weixin_29254673的博客 414

使用ViewPager实现自动轮播

很多APP中都实现了类似引导页的自动轮播,不由得想到昨天的引导页上修改一下代码实现轮播。 其实大体上只需要添加一个线程循环执行就可以了。 项目已同步至:https://github.com/nanchen2251/viewpagerDemo 同样的先上图   直接上代码,注释都全的,我想这样更有利于理解。 先改了Adapter package com.example.nanch...

weixin_34221073的博客 180

Matlab安装Embedded Coder Support Package for Texas Instruments C2000 Processors教程

Matlab安装Embedded Coder Support Package for Texas Instruments C2000 Processors

m0_69133594的博客 2824

ViewPager轮播效果

Android viewpager实现无限滑动。

LangK范儿 658

15、分布式参数热交换器:建模、动态特性与控制

本文综述了分布式参数热交换器的建模、动态特性和控制方法。从热交换器的基本方程推导出发,探讨了一维流动、流动强迫、错流、螺旋和旋转再生式热交换器的建模方法,并分析了其动态行为和频率响应中的共振现象。同时,介绍了热交换器的模拟方法,包括数值模拟和近似方法,并讨论了多种控制策略,如常规控制、最优控制、数字控制以及自适应控制。最后,总结了热交换器研究的发展历程,并展望了未来的研究方向,包括建模精度提升、控制算法优化和跨学科融合等。

w8x9y0z1的博客 123

Unreal5从入门到精通之如何在VR中使用3DUI

前面我们讲过《Unreal5从入门到精通之UMG的使用》一般制作游戏时,UI都是添加到屏幕视窗上面的,但是在制作VR时,我们往往需要制作一个3D的UI,放置在场景中,然后使用手柄的射线来和UI进行交互。今天我们就来讲解下,如何在VR中创作和交互3DUI首次操作会感觉好复杂,多多练习,当你熟悉了UE蓝图的操作后会发现,这只是一个常规的蓝图操作而已。祝大家在虚幻的学习过程中非常顺利。希望这篇博客对你有所帮助。

TxNet 1985

ViewPager实现自动轮播效果

花了点时间实现了轮播效果,其中借鉴了一篇博客:轮播效果实现,但是这个里面所有的方法实现都写在一个文件中,真是花费了不少的时间来理清作者思路,这个作者写的内容可以直接拿来使用,我只是将其中的实现模块化实现了,但是只是简单的实现了效果,并没有进行具体的封装,所以仅供参考思路。1.抽象SingleFragmentActivity类。参考《Android编程权威指南》中作者的意见,抽象出了一套Fragmen

繁城落叶 1万+

2026年03月CCF-GESP编程能力等级认证Scratch图形化编程一级真题解析

本文收录于《,订阅后可阅读专栏内所有文章。

人生就是一个不断学习的过程 238

viewpager实现轮播图效果

viewpager实现轮播图效果

zhouguizhi 9129

Python爬虫实战:如何爬取京东商品评论数据

在本文中,我们介绍了如何使用 Python 爬虫技术爬取京东商品的评论数据。首先,我们分析了京东商品评论的 API 接口和 JSON 数据结构,然后编写了爬虫程序来抓取评论数据,并将数据保存到 CSV 文件中。接着,我们进行了一些基本的数据分析,包括评分分布和简单的情感分析。爬取京东商品评论的数据可以为电商分析、情感分析等提供有价值的信息。你可以在此基础上进行更深入的分析,挖掘更多的商业价值。希望本篇教程能够帮助你了解如何利用 Python 进行电商数据的爬取和分析!

2201_76125261的博客 1647

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7623

ViewPager实现轮播图效果

先上一张效果图: 说到ViewPager实现轮播图效果,那么肯定会用到PagerAdapter,下面先介绍下这个类。 PagerAdapter简介 PagerAdapter是android.support.v4包中的类,是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。 PagerAdapt

Android丶Ren 963

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

AndroidStudio 中用fragment+ViewPager+LinearLayout 实现图片轮播效果

图片轮播效果 要模仿某宝等APP的效果将图片轮播运用到自己的APP上,只需要在用Android Studio开发时在布局文件和Java类文件中添加两份代码即可,转自优快云原博: https://blog.youkuaiyun.com/qq_36789366/article/details/60598623 代码出处: http://www.cnblogs.com/yoyohong/p/5688913.htm...

阿梦的博客 5974

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android viewpager 轮播,Android ViewPager实现轮播图效果

先上一张效果图:说到ViewPager实现轮播图效果,那么肯定会用到PagerAdapter,下面先介绍下这个类。PagerAdapter简介PagerAdapter是Android.support.v4包中的类,是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。PagerAdapter主要是viewpager的适配器,而...

weixin_42301009的博客 972

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用ViewPager实现广告轮播图效果

网上有很多实现轮播图的效果,这篇博客使用viewpager来实现轮播图

lfloveu的博客 498

使用ViewPager实现左右循环滑动及轮播效果

吃水不忘挖井人: 本文修改自博客:http://www.cnblogs.com/kobe8/p/4343478.html 读了上文感觉思路挺不错的,但是实践的时候发现了一些问题。比如,打开应用时banner并没有自动开始轮播,因为handler中的if判断把消息给吃掉了。 由此,我感觉这种处理方式并不是很好,出现重复发消息的问题,又通过其它方式来删除掉这些消息。。。 我对代码做了一

思念叨火车的专栏 687

Android之利用Viewpager实现图片的轮播效果

最近在完成项目的时候,显示的时候用到了图片轮播的效果,这篇文章主要介绍图片轮播效果的实现过程。

u014310722的博客 614

安卓开发之关于如何用viewPager实现三种不同效果的轮播图

还是因为课程设计的缘故,想美化一下界面就想着实现一个轮播图。本文展示了三种效果的轮播图供大家交流,话不多说,直接上代码。

w17319185551的博客 1569

Android基于ViewPager2实现循环轮播图、3D画廊效果

一、前言 在开发中经常会遇到循环轮播图,之前的实现方式是在Activity中使用定时器控制轮播。后面想了想,看能不能把ViewPager2和定时器封装成自定义控件方便移植。然后就有了这个自定义控件。 二、控件实现 因为使用的是ViewPager2,所以要用到适配器,这里写了个BaseBannerAdapter用来设置循环滚动 /** * @ Author : 廖健鹏 * @ Date : 2021/7/27 * @ e-mail : 329524627@qq.com * @ Description

weixin_42046829的博客 6300

android开发 listview 头部 轮播,android使用ViewPager实现轮播效果

android使用ViewPager实现轮播效果发布时间:2020-09-10 01:12:07来源:脚本之家阅读:114作者:ITqingliangViewPager:一个可以实现视图左右滑动切换的控件。ViewPager的基本使用:ViewPager的视图需要通过PagerAdapter来实现显示。PagerAdapter的主要方法:● getCount 视图的数量● instantiateI...

weixin_39609670的博客 211
上一篇: onPageScrollStateChanged的三个状态
下一篇: 如何演示你的App?Android录制Gif动态图教程
Z漫步
博客等级 码龄12年 42粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值