相信各位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的时候就是切换的里面的这些被添

Android ViewFlipper源码分析相关推荐

  1. Android HandlerThread 源码分析

    HandlerThread 简介: 我们知道Thread线程是一次性消费品,当Thread线程执行完一个耗时的任务之后,线程就会被自动销毁了.如果此时我们又有一 个耗时任务需要执行,我们不得不重新创建 ...

  2. Android ADB 源码分析(三)

    前言 之前分析的两篇文章 Android Adb 源码分析(一) 嵌入式Linux:Android root破解原理(二) 写完之后,都没有写到相关的实现代码,这篇文章写下ADB的通信流程的一些细节 ...

  3. 【Android SDM660源码分析】- 02 - UEFI XBL QcomChargerApp充电流程代码分析

    [Android SDM660源码分析]- 02 - UEFI XBL QcomChargerApp充电流程代码分析 一.加载 UEFI 默认应用程序 1.1 LaunchDefaultBDSApps ...

  4. 【Android SDM660源码分析】- 03 - UEFI XBL GraphicsOutput BMP图片显示流程

    [Android SDM660源码分析]- 03 - UEFI XBL GraphicsOutput BMP图片显示流程 1. GraphicsOutput.h 2. 显示驱动初化 DisplayDx ...

  5. 【Android SDM660源码分析】- 01 - 如何创建 UEFI XBL Protocol DXE_DRIVER 驱动及UEFI_APPLICATION 应用程序

    [Android SDM660源码分析]- 01 - 如何创建 UEFI XBL Protocol DXE_DRIVER 驱动及UEFI_APPLICATION 应用程序 一.创建DXE_DRIVER ...

  6. 【Android SDM660源码分析】- 04 - UEFI ABL LinuxLoader 代码分析

    [Android SDM660源码分析]- 04 - UEFI ABL LinuxLoader 代码分析 1. LinuxLoader.c 系列文章: <[Android SDM660开机流程] ...

  7. Android 音频源码分析——AndroidRecord录音(一)

    Android 音频源码分析--AndroidRecord录音(一) Android 音频源码分析--AndroidRecord录音(二) Android 音频源码分析--AndroidRecord音 ...

  8. Android框架源码分析——从设计模式角度看 Retrofit 核心源码

    Android框架源码分析--从设计模式角度看 Retrofit 核心源码 Retrofit中用到了许多常见的设计模式:代理模式.外观模式.构建者模式等.我们将从这三种设计模式入手,分析 Retrof ...

  9. 人人网官方Android客户端源码分析(1)

    ContentProvider是不同应用程序之间进行数据交换的标准API,ContentProvider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据;其他应用程序使用ContentRes ...

  10. Android 音频源码分析——AudioTrack设备选择

    Android 音频源码分析--AndroidRecord录音(一) Android 音频源码分析--AndroidRecord录音(二) Android 音频源码分析--AndroidRecord音 ...

最新文章

  1. ICON: 从单张图片重建穿衣服人体模型
  2. Memcache的部署和使用
  3. RESTful Web Service
  4. Codeforces1080F. Katya and Segments Sets
  5. 终于有人将数据中台讲清楚了,原来根本不算啥
  6. FFmpeg数据结构:AVPacket解析
  7. Quartz的定时任务实现
  8. c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc
  9. Spring IOC基础概念总结:何为控制?何为反转?控制了什么?反转了哪里?
  10. HDU3571 N-dimensional Sphere(高斯消元 同模方程)
  11. 装饰模式 -- 大话设计模式
  12. HDU 6051 If the starlight never fade(原根+推式子)
  13. linux oracle ojdbc,Maven无法下载Oracle驱动ojdbc的解决方式
  14. 前端js 下载zip文件并解压
  15. vs mysql 开发erp_ERP vs MRP的区别
  16. 深度学习(三):人脸关键点检测算法
  17. html作品使用说明,使用说明html模板
  18. kubernetes device or resource busy的问题
  19. android 侧滑删除功能,RecyclerView侧滑删除功能
  20. 初学博科YIGO2.0学习心得--下推

热门文章

  1. Java编程:java判断两个区间交差重叠
  2. c语言兔子序列答案,C语言经典题目——兔子生兔子(示例代码)
  3. linux系统下,traceroute路由跟踪指令详解
  4. 数据库持久化ORM框架Hibernate、JPA、Mybatis、JOOQ和JDBC Template的比较
  5. @Resource 注解和 @Autowired 注解的对比
  6. SVO深度解析(三)之深度滤波(建图部分)
  7. 用欧拉角表示旋转(方位)heading pitch bank 含义,形象的图示
  8. 最新开源:BundleTrack - 无需任何CAD模型的6D物体姿态跟踪算法(谷歌X实习生)...
  9. 浅谈CSwin-Transformers
  10. AI技术如何做工程?