zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android ViewFlipper源码分析

Android源码 分析
2023-09-14 09:06:43 时间

相信各位android程序猿对ViewFlipper这个组件并不陌生,它的的主要作用就是用来切换View的时候提供页面间的动画效果,这点从其父类的功能以及其父类的名字可以看出来:

它的父类的名字为ViewAnimator,其直接父类为ViewGroup,包含了两个动画的引用:

    Animation mInAnimation;
    Animation mOutAnimation;

mInAnimation:这个Animation是用于将上一页或者下一页的View切换进来时的动画

moutAnimation:这个Animation是用于将当前页面的View退出时的动画

if(switchView){
     //让当前显示的View执行退出动画

     currentView.startAnimation(mOutAnimation);

  //让即将要显示的View执行进入动画

    nextView_or_preView.startAnimatioin(mInAnimation);

}

上面的伪代码可以很清晰的说明了ViewAnimator或者ViewFlipper的页面切换动画的实现原理,当然还不是很完善,随着博文的进行会逐一完善上面的伪代码。

因为ViewAnimator继承自ViewGroup,所以可以调用ViewGroup的addView几个相关的重载方法进行View的添加,这些添加进来的各个View按照添加的顺序添加到了ViewGroup的mChildren数组里面,ViewFlipper或者ViewAnimator切换View的时候就是切换的里面的这些被添