Sliding Fragment

介绍:该案例为传统的Fragment增加了个性化的补间动画,其效果是原有fragment向屏幕内做一定的下沉,新的fragment显示在最上层,产生层叠效果的多个fragments。
Video: http://www.youtube.com/watch?v=xbl5cxfA1n4

Source:http://developer.android.com/shareables/devbytes/SlidingFragments.zip

本文将简单分析其实现流程及原理
Step1:添加Fragment并设置点击的切换事件
首先添加一个fragment,并设置显示内容已做区别,案例中显示了一张图片,接着设置单击事件,为了使得我们单击任意位置都能触发fragment的切换动画,这
里需要为用于展示图片的fragment,显示文本的fragment以及黑色背景view都添加该事件监听器。

Step2:fragment切换实现
这里只有2个fragment,一个是用于显示图片,另一个显示文本,预期效果是单击屏幕后,图片下沉,文本显示到顶层,再次单击后则恢复原状,即,文本消失>,图片上浮。
分析这些动画的顺序和效果,图片的下沉可以通过一个组合animation来做,1.缩放,例如缩小为原图80%,2.旋转,这里的下层效果是首先图片x轴旋转40度,>然后再将旋转角度设置为0,3.添加一个半透明的遮罩,以示图片当前出于幕后状态,

文本的出现则在图片的动作完成后,通过manager动态讲其添加到画面上,这里的文本不是全屏的,否则就看不到后面的图片背景,文本的出现也可以添加动画>,这里文本出现时由下至上,消失时由上至下。

private void switchFragments () {if (mIsAnimating) {return;}mIsAnimating = true;if (mDidSlideOut) {mDidSlideOut = false;getFragmentManager().popBackStack();} else {mDidSlideOut = true;AnimatorListener listener = new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator arg0) {FragmentTransaction transaction = getFragmentManager().beginTransaction();transaction.setCustomAnimations(R.animator.slide_fragment_in, 0, 0,R.animator.slide_fragment_out);transaction.add(R.id.move_to_back_container, mTextFragment);transaction.addToBackStack(null);transaction.commit();}};slideBack (listener);}}

  

Fragment过度动画分析一相关推荐

  1. BottomNavigationView+Navigation 添加底部导航菜单切换时的fragment过渡动画animation

    Navigation默认的透明度动画,只有300毫秒,通过BottomNavigationView切换fragment时,几乎看不到过渡动画的效果,开始还以为没有动画. 开始在网上查找相关资料,最后找 ...

  2. [Android]Fragment自定义动画、动画监听以及兼容性包使用

    Fragment是Android在API 11之后加入的一个组件,对提高Android开发中的布局合理性和布局效率都有很大作用,尤其是在Android平板等大屏幕设备的开发中,Fragment的引入能 ...

  3. 动画分析步骤“三步曲”

    摘要: 本文将实现简单的"登录界面按钮移动效果",并通过此动画效果介绍动画设计和分析的思路.本文不仅旨在让大家弄清动画效果是如何通过代码来实现的,更重要的是希望大家通过对本文的学习 ...

  4. [UWP小白日记-9]页面跳转过度动画(二)

    [UWP小白日记-9]页面跳转过度动画(二) 原文:[UWP小白日记-9]页面跳转过度动画(二) 又打算动手写了 [UWP小白日记-6]页面跳转过度动画 上次写的,这次随着学习的进度使用新的玩法. 最 ...

  5. 开源中国源码学习UI篇(二)之NavigationDrawer+Fragment的使用分析

    前文链接:开源中国源码学习UI篇(一)之FragmentTabHost的使用分析 开源中国2.2版,完整源码地址为:http://git.oschina.net/oschina/android-app ...

  6. setVisibility()设置过度动画

    在做项目的过程中用到setVisibility()时,有时感觉过渡非常生硬.于是为其添加消失的动画让它过渡自然些.于是在网上找了好久方法,比较模糊.自己试了试,把实现的方法写出来. 实现的方法很简单: ...

  7. Android 点击图片放大至全屏 再次点击关闭过度动画 Shared Element效果(共享元素效果)

    Android 点击图片放大至全屏 再次点击关闭过度动画 最近项目需要给用户一个体验优化,各种查阅,然后改了很多地方,类似于图片的点击预览,消息列表的点击流畅过渡. Shared Element效果( ...

  8. css3新增动画属性(过度动画 变形动画 关键帧动画)

    目录 过度动画transition 多属性值过渡 2d变形transform 平移 应用:实现居中(不要求知道盒子的宽高) 缩放 旋转 倾斜 修改变形中心的属性 变形属性的复合写法 3D变形动画 3d ...

  9. 微信小程序js过度动画

    微信小程序js过度动画 如有错误还请大神指教.如果觉得不错可以关注我了解更多. 一,我们先来看看效果吧. 二,我们用的是js的逐帧动画,css也可有相同的效果,我们这里用js // pages/arr ...

最新文章

  1. 绩效真的重要吗?绩效管理系统有哪些?
  2. 前端路由(一) 路由,hash,history
  3. OpenJudge 2796: 数字求和
  4. 全国计算机一级考试介绍难不难,全国计算机一级考试内容 计算机一级考试难吗...
  5. kotlin 查找id_Kotlin程序查找圆柱体区域
  6. opencv puttext
  7. 天津大学计算机专硕_「20考研」计算机考研专业课变动汇总
  8. 红旗与火狐携手打造优质开源体验,推出红旗Linux专版火狐浏览器
  9. Pyqt Model/view框架 3.可编辑项
  10. Nsight Compute(NCU) Scheduler Statistics 数据解读
  11. linux 挂载镜像文件命令,Linux mount命令系统挂载与镜像处理
  12. 网页播放器代码集中营(2)
  13. android实现图片自动轮播代码,Android实现图片轮播切换实例代码
  14. mysql basemapper_BaseMapper和继承
  15. 拆解USB电压电流表,并分析测量原理(转数码之家)测电流需串一小电阻到电路。测电压不用按照文中,可以直接让电压正进AD的输入端口测试
  16. OpenShift — 部署 OKD 4.5
  17. docker安装redis及验证
  18. Orangepi 5 Unixbench基准测试结果
  19. Linux ALSA音频驱动之一:框架概述
  20. 她26岁成中科大博导:我是工作上灭绝师太,生活中女汉子

热门文章

  1. Java字节流和字符流区别
  2. 前端开发面试题总结-代码篇
  3. [LintCode] Reverse Pairs 翻转对
  4. Java的HashCode,Equal和==
  5. Android 推送通知指南(转载)
  6. 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(四):使用 命名空间 简化配置...
  7. Struts2中的全局结果集
  8. VS Code 插件
  9. logback配置文件详解
  10. 四天学会Mybatis