虽然 Android 5.0 之后推出了新的过渡动画方式,但通常只是用于特定的场合使用,activity.overridePendingTransition() 通用方式的过渡动画还是很常用。

原理分析

startActivity(Intent(this,SecondActivity::class.java))

overridePendingTransition(enterAnim, exitAnim)

overridePendingTransition有两个参数,第一个参数(enterAnim)是作用于SecondActivity 的进入屏幕可见区域效果,第二个参数(exitAnim)是作用于当前 Activity 离开屏幕可见区域效果。

示意图

RightIn:从右边滑入屏幕(iOS默认效果)

iOS 默认的效果,新的Activity从右边(R)进入显示区域,当前Activity从左边离开显示区域到(L)。

enterAnim(activity_right_to_left_enter.xml):X轴从 100% 到 0

exitAnim(activity_right_to_left_exit.xml):X轴从 0 到 -100%

使用

startActivity(Intent(this,SecondActivity::class.java))

overridePendingTransition(R.anim.activity_right_to_left_enter, R.anim.activity_right_to_left_exit)

BottomIn:从底部弹出Activity(常用效果)

一般从底部弹出新Activity,就是从B区域到屏幕可见区域,当前的Activity是保持不变的。 enterAnim(activity_bottom_to_top_enter.xml):Y轴从 100% 到 0

exitAnim(no_anim.xml):Y轴保持不变

使用

startActivity(Intent(this,SecondActivity::class.java))

overridePendingTransition(R.anim.activity_bottom_to_top_enter, R.anim.no_anim)

RightOut(和RightIn对应,iOS 默认效果)

前面讲了startActivity的转场动画,下面讲finish()的转场动画。overridePendingTransition有两个参数,第一个参数(enterAnim)是作用于上一个Activity的进入屏幕可见区域效果,第二个参数(exitAnim)是作用于当前 Activity 离开屏幕可见区域效果。

iOS默认的finish动画,是当前的Activity从屏幕可见区域到R区域,上一个Activity从L区域到屏幕可见区域。

enterAnim(activity_left_to_right_enter.xml):X轴从 -100% 到 0

exitAnim(activity_left_to_right_exit.xml):X轴从 0 到 100%

使用

finish()

overridePendingTransition(R.anim.activity_left_to_right_enter, R.anim.activity_left_to_right_exit)

BottomOut(和BottomIn对应,常用效果)

从屏幕底部滑出效果是,当前Activity从底部滑出屏幕可见区域,上一个Activity保持不变,和BottomIn不同的是,enterAnim是不需要使用动画,因为上一个Activity已经在屏幕的后面了,只需要改变当前Activity消失的效果。 exitAnim(activity_top_to_bottom_exit.xml):Y轴从 0 到 100%

使用

finish()

overridePendingTransition(0, R.anim.activity_top_to_bottom_exit)

完整示例代码

android 官方默认动画,Android动画一:Activity过渡动画详细实现原理相关推荐

  1. Android——浅析Activity过渡动画

    Activity过渡动画 前言 分解动画 效果视频 解析 滑动动画 效果视频 解析 淡出动画 效果视频 解析 共享元素 共享单个元素 效果视频 解析 共享多个元素 效果视频 全部代码 第一个Activ ...

  2. Android activity跳转动画,6种activity进入动画

    源码链接:https://pan.baidu.com/s/1jAKMNUuCdWVxUm2BUCzL2g 添加动画anim 新activity进入方式 默认是右往左进入动画 1.下往上推进入动画--1 ...

  3. android 页面过渡动画,Activity过渡动画的实现方法

    1.使用overridePendingTransition方法实现Activity跳转动画 overridePendingTransition方法是Activity中提供的Activity跳转动画方法 ...

  4. Android仿微信朋友圈图片打开退出过渡动画

    大家好,最近又是不断地改需求,终于闲下来了.看到微信朋友圈的图片打开退出的过渡动画,正好我们项目中也有类似功能,但是转换效果干巴巴的,麻麻赖赖的,一点都不圆润.没关系,盘他!先来看我实现的效果: 实现 ...

  5. android 动画格式下载,安卓p过渡动画文件下载

    安卓p过渡动画模块是一个非常不错的安卓模块文件,可以帮助大家在切换各种页面和应用的时候更加的流程和美观,安装包非常的小巧,几乎不会占用大家的手机空间,而且免费使用.有喜欢的小伙伴可以来体验! 安卓p过 ...

  6. android glide 动画,Glide-默认图与过渡动画(Placeholders Fade Animations)

    写在前面:这篇文章作者是Norman Peitek,所有著作权归原作者所有,我只是在学习Glide的时候看到有简书的作者 weiyf 写了双语的翻译,觉得非常好,但是作者只写了几篇,估计是比较忙吧.于 ...

  7. Activity过渡动画

    Android5.0之前我们一般会使用overridePendingtransition(int inId, int outId)来给Activity增加一些切换动画,但效果差强人意.Android5 ...

  8. 安卓 activity过渡动画

    Activity过渡的五中实现 1.使用overridePendingTransition方法实现Activity跳转动画  overridePendingTransition方法是Activity中 ...

  9. android 官方说明文档,Android官方文档翻译-Accessibility

    标签元素 向用户提供解释每个可互动元素的意义和目的有用且形象的标签是非常重要的.这些标签允许屏幕阅读者(比如 TalkBack )正确向用户解释每个控制器的功能. 你可以使用一下两个方法提供元素的标签 ...

最新文章

  1. ASP调用存储过程返回了一个参数和一个记录集时出现ADODB.Recordset 错误 '800a0e78'...
  2. 软件测试(20150819)
  3. sub在python中的意义_在python中,如何使用回复sub?
  4. [密码学] RSA比特安全性
  5. Sql Server 日期格式转换
  6. Codeforces 118 D. Caesar's Legions (dp)
  7. cocos2d-x初探学习笔记(14)--菜单项
  8. python学习之函数
  9. Code Issues 2,637 Pull requests 0 Projects 1 Wiki Security Insights Settings 使用filter node快速找到XML f
  10. python 变量类型注释_变量类型、命名规则及代码注释
  11. java的二叉树及三种遍历
  12. 强制刷机NOKIA E6-00方法
  13. C语言 取绝对值函数abs()使用及注意事项
  14. 打开Excel2010时提示错误:向程序发送命令时出现问题!
  15. mac_ScreenSaver_第1个屏幕保护程序
  16. 人脸对齐:Wing Loss人脸关键点检测算法2018
  17. ActiveMQ学习笔记(二十三)Comsumer高级特性2
  18. 分享一个国内可用的ChatGPT网站,免费无限制,支持AI绘画 - AI 百晓生
  19. iPad点餐助力餐饮业发展
  20. 游戏思考30:技能碰撞检测分类枚举及逆水寒魔兽老兵服副本攻略(英雄武林风云录,后续更新舞阳城、扬州、清明等副本攻略)

热门文章

  1. 计算机视觉:Bag of words算法实现图像识别与搜索
  2. 中职计算机php学啥,计算机专业都学什么主要课程有什么_中职中专网
  3. c语言N*N的二维数组,c语言高手帮个忙(请先看问题,好解答
  4. vue下轻松解决模拟微信视频缩略图拖拽→吸附窗口边界的功能
  5. 在Ubuntu 14.04 64bit上安装思维导图工具XMind
  6. linux进程间通信:POSIX信号量
  7. C++ 拷贝构造函数和重载赋值运算符的区别
  8. Setting the Reply-To Header in an Email using CDONTS.NewMail Object and CDO Message
  9. 学习dubbo框架的问题
  10. HDU 1757 A Simple Math Problem