ViewPager之多页面滑动切换+游标滑动+ 自动无限轮转+触摸停止

我们先看下效果图

上图是我们需要实现的效果图,功能有如下三个:

1. 手势滑动可以切换界面,点击上面的引导一到引导四也可以切换到相应的画面。

2. 切换界面时,引导一到引导四下面的横线会相应的移动到对应的地方。

3. 没有手势时,界面会自动轮转,有种广告轮转的效果;有手势是,会停止轮转。

这次要实现的是第三个功能,实现第三个功能主要用到Handler和ViewPager的触摸监听器。

Handler是为了实现隔一段时间自动切换页卡,因此需要定义一个Handler的对象,来处理自动切换,具体思想是这样的,在Activity的Oncreate中,发一条延时的空消息,然后handler处理消息时,切换页卡,并且再次发一条延迟的空消息,这样就可以达到自动轮转的功能。

private Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {            // 这里++后如果超过页卡的数量,就变回第一张页卡
            int toPage = (++currentPage) % listview.size();
            mViewPager.setCurrentItem(toPage);
            mHandler.removeMessages(SCROLL_WHAT);
            mHandler.sendEmptyMessageDelayed(SCROLL_WHAT, DELAY_TIME);
        }
    };

下一步我们需要实现触摸停止的功能,因此需要设置ViewPager的触摸监听器,当监听到手势是按下时,停止将之前的消息移除以达到停止Handler的处理;当监听到手势离开时,发一条消息继续轮转。

mViewPager.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    stopAutoScrolled();
                    break;
                case MotionEvent.ACTION_UP:
                    startAutoScrolled();
                    break;
                }
                return false;
            }
        });

到这里,关于ViewPager的功能就全部实现了。

时间: 2024-10-04 20:58:02

ViewPager之多页面滑动切换+游标滑动+ 自动无限轮转+触摸停止的相关文章

ViewPager之多页面滑动切换+游标滑动

我们先看下效果图 上图是我们需要实现的效果图,功能有如下三个: 1. 手势滑动可以切换界面,点击上面的引导一到引导四也可以切换到相应的画面. 2. 切换界面时,引导一到引导四下面的横线会相应的移动到对应的地方. 3. 没有手势时,界面会自动轮转,有种广告轮转的效果:有手势是,会停止轮转. 这里实现的时第二个功能. 思想:实现这个效果,其实是很简单的.一方面,我们需要初始化游标的状态,先获取一个TextView的宽度,然后把游标对应的ImageView的宽度也设置成这个大小,保证TextView和

ViewPager+Fragment实现页面的切换

新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" and

viewpager+fragment三页面tab切换并且实现同时上传三个页面的信息

一:代码:首先是主页面: package com.example.admin.myviewpager; import android.content.Context;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatAc

ViewPager页面滑动切换

我们日常生活中用到的微博,QQ,微信等app在进行页面左右滑动的时候,很多都可以用ViewPager来实现.可以说,ViewPager在android开发中十分常见并且特别实用. Viewpager在android.support.v4.view这个软件包中,  android.support.v4.view.jar是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.所以低版本开发时必须加入android-support-v4.jar,并且在XM

android(8) ViewPager页面滑动切换

一.ViewPager页面滑动切换实现:    借鉴了别人的源码,还是比较容易实现的,而且这种效果还是经常使用的,特此记录一下: 效果图: 主界面: public class MainActivity extends Activity { private ViewPager mPager;// 页卡内容 private List<View> listViews; // Tab页面列表 private ImageView cursor;// 动画图片 private TextView t1, t

ViewPager源码分析——滑动切换页面处理过程

上周客户反馈Contacts快速滑动界面切换tab有明显卡顿,让优化. 自己验证又没发现卡顿现象,但总得给客户一个技术性的回复,于是看了一下ViewPager源码中处理滑动切换tab的过程. ViewPager  源码位置: android\frameworks\support\v4\java\android\support\v4\view\ViewPager.java ViewPager其实就是一个重写的ViewGroup,使用ViewPager可以参考SDK中的demo:sdk\extras

android ViewPager页面左右滑动切换

我们日常生活中用到的微博,QQ,微信等app在进行页面左右滑动的时候,很多都可以用ViewPager来实现.可以说,ViewPager在android开发中十分常见并且特别实用. Viewpager在android.support.v4.view这个软件包中, android.support.v4.view.jar是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.所以低版本开发时必须加入android-support-v4.jar,并且在XML

Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面

说明: 实现效果: 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现,更方便的实现图片和字体颜色的改变,更方便的通过RadioButton的点击事件来控制页面切换 原文地址:http://www.runoob.com/w3cnote/android-tutorial-fragment-demo4.html

【Android UI】案例03滑动切换效果的实现(ViewPager)

本例使用ViewPager实现滑动切换的效果.本例涉及的ViewPager,为android.support.v4.view.ViewPager.所以需要在android项目中导入android-support-v4.jar. 本例中ViewPager是实现滑动效果的核心部分.对其设置PageChangeListener监听事件,是实现滑动效果的核心思路. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 首先是主界面layout.xml文件,activity