ViewPager切换动画效果修改

比如我们点击向右按钮,希望左边的view移动过来,有个平移效果,但是用系统默认的ViewPager切换的时候,会一闪而过。这是为什么呢?

因为viewpager外面其实有个scrollview,你可以使用反射的方法,设置他的scroll时间。代码如下。

主要代码:

//第一步:

        LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = mInflater.from(context).inflate(
                    R.layout.vw_personalcyclingtarget_test, personalFileMain);
            MyCycTargetViewPager mVp = (MyCycTargetViewPager) view
                    .findViewById(R.id.cyctarget_viewpager);

            try {
                // viePager平移动画事件
                Field mField = ViewPager.class.getDeclaredField("mScroller");
                mField.setAccessible(true);
                MyScroller mScroller = new MyScroller(mVp.getContext(),
                        new AccelerateInterpolator());
                mField.set(mVp, mScroller);
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

//第二步:

/**
 *
 * @desc:ViewPager动画时间
 * @author: pangzf
 * @date: 2014年8月13日 下午6:00:05
 */
public class MyScroller extends Scroller {
    // 设置你需要的平移时间
    private int animTime = 500;

    public MyScroller(Context context) {
        super(context);
    }

    public MyScroller(Context context, Interpolator interpolator) {
        super(context, interpolator);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy, int duration) {
        super.startScroll(startX, startY, dx, dy, animTime);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy) {
        super.startScroll(startX, startY, dx, dy, animTime);
    }

    public void setmDuration(int animTime) {
        this.animTime = animTime;
    }

我们的项目是禁止使用viewpager左右滑动的,禁用左右滑动你可以点连接

点击向右按钮的效果图:

ViewPager切换动画效果修改

时间: 2024-10-12 14:27:28

ViewPager切换动画效果修改的相关文章

ViewPager切换动画效果改动

比方我们点击向右button,希望左边的view移动过来,有个平移效果,可是用系统默认的ViewPager切换的时候,会一闪而过. 这是为什么呢? 由于viewpager外面事实上有个scrollview,你能够使用反射的方法,设置他的scroll时间.代码例如以下. 主要代码: //第一步: LayoutInflater mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE)

Android项目实战(四):ViewPager切换动画(3.0版本以上有效果)

原文:Android项目实战(四):ViewPager切换动画(3.0版本以上有效果) 学习内容来自“慕课网” 一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换的时候添加切换动画效果 先看布局文件 activity_main.layout <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.c

Android 实现个性的ViewPager切换动画 实战PageTransformer(兼容Android3.0以下)

1.介绍如何使用setPageTransformer设置切换动画: 2.自定义PageTransformer实现个性的切换动画: 3.该方法在SDK11以下的版本不起作用,我们会对其做一定修改,让其向下兼容. 官方示例地址:http://developer.android.com/training/animation/screen-slide.html 有兴趣的可以去看看~~ 好了,下面开始编写代码~~ 2.setPageTransformer的使用 首先我们迅速的实现一个传统的ViewPage

ViewPager切换动画PageTransformer使用

Android从3.0开始,就添加了很多动画,ViewPager当然也不例外,相对于非常平庸的默认切换动画,Google给我们展示了两个动画例子:DepthPageTransformer和ZoomOutPageTransformer,实际上我们也可以通过实现ViewPager.PageTransformer来做出完全不同的切换动画效果.关键是要理解transformPage(View view, float position)的参数.view理所当然就是滑动中的那个view,position这里

千变万化的ViewPager切换动画(1)--仅支持3.0以上版本的官方方法

(1)创建一个项目Viewpager_anim 添加图片资源guide_image1.png.guide_image2.png.guide_image3.png 编写activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:l

ViewPager切换动画PageTransformer的使用

Android从3.0开始添加了属性动画后,诸多难以实现的动画都可以轻松解决了,v4包下的ViewPager控件当然也不例外,相对于非常平庸的默认切换动画,Google官方给我们展示了两个动画例子:DepthPageTransformer和ZoomOutPageTransformer,比较炫. 实际上我们也可以通过实现ViewPager.PageTransformer接口来做出完全不同的切换动画效果.实现PageTransformer接口就只要实现一个方法:transformPage(View

ViewPager的动画效果(学习自慕课网)

先上效果一: 先上效果二: 先上效果三: 首先定义好viewPager控件,其次,是调用一行代码实现动画效果, pager.setPageTransformer(true,new DepthPageTransformer()); 前提是需要做一些准备操作的,且只有api3.0以上才可以有效. 注:因为属性动画是3.0以后才出现的,如果想在3.0以下的手机上实现动画,需要做一些更改,用nineoldandroids框架来代替属性动画.这里先不向下兼容了.如有想向下兼容的朋友,可以访问宏阳大神的博客

android Activity切换动画效果

为Activity设置左右进出的效果,可以通过在Mainfest.xml文件中设置主题的方式来实现.还可以使用java代码. 一.设置样式 先看看实现动画的样式: <style name="AnimationRToL" mce_bogus="1" parent="@<span style="color:#ff0000;">android:style/Animation.Activity</span>&quo

界面切换动画效果

private ViewFlipper flipper; private float startX; private Animation in_lefttoright; private Animation outlefttoright; private Animation in_righttoleft; private Animation out_righttoleft; @Override public void onCreate(Bundle savedInstanceState) { su