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

我们先看下效果图

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

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

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

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

这里实现的时第二个功能。

思想:实现这个效果,其实是很简单的。一方面,我们需要初始化游标的状态,先获取一个TextView的宽度,然后把游标对应的ImageView的宽度也设置成这个大小,保证TextView和ImageView对齐。接着需要监听ViewPager,每当ViewPager发生切换时,对ImageView设置一个平移动画,使之平移到对应的TextView下面。

初始化游标状态:

private void initCursor() {
        cursor = (ImageView) findViewById(R.id.cursor);
        cursorWidth =BitmapFactory.decodeResource(getResources(),
                R.drawable.cursor).getWidth();
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        int windowWidth = dm.widthPixels; // 获取分辨率宽度
        int tabWidth = windowWidth / listview.size();     //将cursor的宽度设为跟TextView的一样        cursor.getLayoutParams().width = tabWidth; cursorWidth = tabWidth; }

设置ViewPager的监听器:

我们需要监听ViewPager的滑动,然后根据这个滑动相应的把cursor也平移到下面。ViewPager的OnPageChangeListener在上一篇已经介绍过。

我们这里需要用到的是onPageSelected(int arg0) ,页面跳转完后,对cursor进行平移动画的设置。

 ......
public void onPageSelected(int arg0) {
            Animation animation = new TranslateAnimation(cursorWidth* currentPage, cursorWidth
                    * arg0, 0, 0);
            animation.setDuration(300);            // 指动画结束是画面停留在此动画的最后一帧
            animation.setFillAfter(true);
            cursor.startAnimation(animation);
            currentPage = arg0;
        }
 ......

这样做好后,我们的功能就实现了。

时间: 2024-10-24 03:57:27

ViewPager之多页面滑动切换+游标滑动的相关文章

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

我们先看下效果图 上图是我们需要实现的效果图,功能有如下三个: 1. 手势滑动可以切换界面,点击上面的引导一到引导四也可以切换到相应的画面. 2. 切换界面时,引导一到引导四下面的横线会相应的移动到对应的地方. 3. 没有手势时,界面会自动轮转,有种广告轮转的效果:有手势是,会停止轮转. 这次要实现的是第三个功能,实现第三个功能主要用到Handler和ViewPager的触摸监听器. Handler是为了实现隔一段时间自动切换页卡,因此需要定义一个Handler的对象,来处理自动切换,具体思想是

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