小记:需求说要改改Launcher启动Activity时,Launcher和Activity跳转的动画,让跳转更自然。

。。。哔哩哔哩哔哩。。。经过小编一番百度之后发现,

发现几种方式

1、ActivityOptions

2、overridePendingTransition(int enterAnim, intexitAnim)

Launcher启动Activity时,新activity界面的出现和Launcher的退出衔接动画。

这两种方式只能实现从Launcher启动Activity的动画,从第三方应用返回Launcher还是系统动画。

这两种的实现方式都很容易百度到,随手小记,记录一下知识点。

好吧,真正的原因是,小编也在摸索中,,,

*******************************************************************************************************

*******************************************************************************************************

经过几天的摸索,从Launcher启动应用(startActivity)和从应用返回Launcher的转场动画都找到了修改点。

下面简单的介绍一下:

从Launcher启动应用转行动画

修改点在startActivity时传入:

startActivity(Intent intent, @Nullable Bundle options)

第一个参数intent表示启动哪个应用,第二个参数bundle表示动画。

这里的动画小编使用xml方式:

ActivityOptions.makeCustomAnimation(this,
        R.anim.activity_open_enter, R.anim.activity_open_exit);

这里,第一个参数表示startActivity时,即将进入的Activity动画、第二个表示startActivity时,Launcher退出的动画。

从其他应用返回Launcher的转场动画

在网上找到说设置style的方法,实现activity退出时动画。然而Launcher这边并没有效果。。。。
跟踪 framework/base/services/core/java/com/android/server/wm/AppTransition.java中loadAnimation方法。
发现从第三方应用返回Launcher时,上面方法中的 transit值为 13,对应的case见下图:
然后根据enter标记判断出是退出的应用还是进入的应用分别拿到不同的动画,并取值framework里默认的动画。
然后,小编猜测,既然framework有默认的动画,如果改了这里,那就改了所有这种情况的动画。由于第一次接触framework层代码,没敢直接改。
(但应该可以应用自己设置这两个属性的动画,心里默默的想到)
然后就想起了网上说的style方法,是不是属性设置的不对导致读取了framework的默认动画。so,经过一番尝试,终于成功的修改了从其他应用返回Launcher的转场动画。
style如下:
然后在LauncherActivity的theme里加上动画:
就ok啦~~!!!!!
注意: 上面说的transit值为13是和当前Activity的主题有关的(全靠摸索和试验,没找到具体代码逻辑支持)
即,你用哪个activity启动别的Activity,当你返回上一个Activity时,就会根据主题得到不同的类型。
如上图所示,当我注释掉主题里的windowShowWallpaper时,从其他应用返回launcher的动画就变掉了,因为framework中 loadAnimation的 transit值不再为 13,
而变成了11,而11对应的case是:
对应的动画应该设:
由此可推断出,加载动画并不是固定的,而是根据Activity的属性决定的。
另外,,,,,,
我自己写的 搜索activity,,从launcher启动搜索,启动方式如下:
搜索Activity的主题如下:
当我搜索到手机安装app时,点击启动app,再返回搜索Activity时,framework中 loadAnimation的 transit值为9,
对应的 动画属性为:
所以主题里设置了这两个动画。
可能,小编解说的不太清楚,但从上面几个例子可以看出一些东西了。共勉之~~
***************************************************************************************************************************************
***************************************************************************************************************************************
另,近期任务的转场动画同样方法设置,启动动画在startActivity时,通过第二个参数传入动画的xml就好了。
退出近期任务的动画(我们改过了近期任务源码,退出也是启动Activity,so方法同上)。
近期任务代码在SystemUI中,frameworks/base/packages/SystemUI/src/com/android/systemui/recents/Recents.java中跟踪到startActivity为止。
近期任务返回应用代码在ItsRecentsActivity.java中,因为我们修改了近期任务,略有变动(源码可能在RecentsActivity.java里)。
通过最后一个参数传入动画。
由于第一次接触framework,无法写的很详细,只能通过加log来看一下代码逻辑,,,,,暂时记录到这里。

Activity转场动画相关推荐

  1. 安卓Activity转场动画

    安卓Activity转场动画:两个Activity进行跳转的时候,转场动画 1,ActivityOptions 适合API21及安卓5.0以上版本 2,兼容类:ActivityOptionsCompa ...

  2. android 揭示动画,Android进阶设计 | 使用揭露动画(Reveal Effect)做一个丝滑的Activity转场动画...

    提笔之际(附总体思路) 最近跟几个小伙伴在实践一个项目,考虑到界面效果,我们决定使用揭露动画作为Activity的转场动画. 这里主要是我负责这部分的实现. 话说之前是没接触过的,关于具体的实现跟大体 ...

  3. android Activity转场动画makeSceneTransitionAnimation

    1.activity转场动画实现有很多,这里主要记录ActivityOptions实现转场动画. 1.makeSceneTransitionAnimation实现,网上很多说要添加下面这句代码 < ...

  4. Android Reveal圆形Activity转场动画

    一.效果 二.知识点 CircularReveal动画.透明主题.转场动画(非必须) 三.方案 假设有两个Activity A和B.Reveal圆形Activity转场动画效果先从A到B,那么基本方案 ...

  5. Android开发之Activity转场动画

    引子 相信开发过iOS的程序员都知道iOS ViewController之间的跳转动画非常多,很酷对不对?这让开发Android的羡慕不已,曾几何时,Android中的Activity跳转是何等的生硬 ...

  6. 【Android -- 动画】Activity 转场动画

    一.前言 在 Android 5.0 以后,Google 为 Activity 的转场设计了更加友好的动画效果. 转场动画(Activity Transition)基本介绍 Android 5.0 提 ...

  7. activity 转场动画不生效_replugin插件化,插件转场动画失效的问题解决

    说明 随着应用功能的丰富,Android程序的安装包也逐渐变大,这成为应用程序现有框架下难以摆脱的瓶颈.所以引入了rePlugin插件化框架,将应用按功能拆分为插件,以此减小apk的大小并同时增加应用 ...

  8. android自定义转场动画,Activity转场动画(5.0+)

    设置transitionName 首先,我们需要选定变换开始和结束的元素,给它们设置一个相同的transitionName, 我这个例子中,开始变换的元素是列表中的图片 android:id=&quo ...

  9. Android Activity和Fragment的转场动画

    Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, int exitAnim)实现的. 这个方法是API Lev ...

最新文章

  1. Python编程基础:第四十节 类变量Class Variables
  2. linux支持中文文件名,CentOS安装中文支持(linux中文文件名乱码)
  3. python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标...
  4. 第三章 Joomla!扩展开发:后端开发
  5. Visual Studio 2012 和.NET Framework 4.5 快速开始的5分钟视频
  6. hybird之web动态换肤实现
  7. 让php来搞定一切!,ubuntu安装和配置php5
  8. python入门先学什么-所以学完 Python 入门课的孩子到底能干啥?
  9. atom对比 vscode_几款前端IDE工具:Sublime、Atom、VSCode比较
  10. 反汇编IDA WinDbg
  11. MATLAB 点运算与除法
  12. 2款QQ空间首页好看的psd源码
  13. 雅俗共赏——广告词之很美很强大的汉语言
  14. RK3288开发板——Debian8系统制作
  15. 一个小工具就能帮我清理 30GB 微信文件,也太好用了!
  16. c语言源代码下载TGAM,2018年江西理工大学C语言程序设计竞赛(初级组)一
  17. 中国三大主流开源Linux操作系统社区及其产品生态
  18. 商易通-预约挂号详情页面-预约确认(三十五)
  19. HTML 文档可以映射为,将PDF文档转换为可通过URL访问的HTML文档的最佳方法
  20. Linux下QT添加图片运行程序后:iCCP: known incorrect sRGB profile(实测有效)

热门文章

  1. python tkinter treeview制作,Python tkinter之Treeview(表格)
  2. MATLAB 数据处理(一)论文绘图常用格式
  3. 最装逼的基准测试工具套件 - JMH
  4. 西工大NOJ数据结构实验——1.2高精度计算PI值
  5. 算法工程师应该熟知的C++高级用法
  6. html--盒子的边框属性(border)
  7. thinkpad笔记本功能键开关设置
  8. 计算机监考人员职责,计算机专业部顺利开展优化组合考试工作
  9. 象棋 JavaScript
  10. 对于SQL语句执行过程你确定了解吗