Android 笔记 transition / 转换动画
来源:互联网 发布:域名隐藏转发 编辑:程序博客网 时间:2024/06/08 15:05
Transition
之前有了解一丁点转换动画,比如说不同activity之间转换的动画,或者公共部件之间的转换动画,笔记做的很简略。
这里又(稍微)仔细的了解了一下官网的关于转换动画的介绍。
使用transition framwork
Material-Animations,就是上面那条的英文版,还有例子
Transition-android developer
定义定制动画-android developer
摘录于第一个参考里面的:
Android Transition Framework可以实现三种效果:
1,不同Activity之间切换时,Activityc的内容(contentView)转场动画
2,不同Activity之间切换时,如果使用了Shared Element动画,也可以使用Transition FrameWork来实现不 同的过渡动画效果
3,同一个Activity内View变化的过渡动画(Scene)
其实,看上面的参考就很清楚了,但是因为有些比较重要的容易忽略的东西,必须在这里记下来。
首先,如果要使用activity的切换动画,需要使用startActivity(intent,bundle)
其中第二个参数一般为ActivityOptionsCompat.makeSceneTransitionAnimation().toBundle()
然后,并不是所有场合都适用转换动画。
(简单翻译自官网的说明)
1,surfaceView 不能正常应用转换动画
2,部分动画在textureView上工作不正常
3,AdapterView的子类,比如listView,与transition不兼容
4,有文字的view比如textView会在调整大小的时候文字显示错误。
创建简单的activity切换动画
用java code创建简单的切换动画
//设置退出的时候显示的动画getWindow().setExitTransition(new Slide(Gravity.LEFT).setDuration(500));//设置进入的时候显示的动画getWindow().setEnterTransition(new Fade(Fade.IN).setDuration(500));
在theme里面有一个比较重要的设置
<!-- 允许使用transitions --> <item name="android:windowContentTransitions">true</item> <!--是否覆盖执行,其实可以理解成是否同步执行还是顺序执行--> <item name="android:windowAllowEnterTransitionOverlap">false</item> <item name="android:windowAllowReturnTransitionOverlap">false</item>
如果没有设置,默认是同步执行,也就是说退出当前activity,进入新activity是同步执行
实际效果并不好。
其中,上面设置的参数是内建的fade动画,具体可以查询transition的api参考。
然后使用startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(thisActivity).toBundle());
来启用动画。如果用普通的startActivity(intent)是没有效果的
同时,我们希望在打开的activity里面按返回键以后退出到上一步的activity的时候也显示动画,也需要设置如下:
//按返回键以后,退出的activity显示的动画getWindow().setReturnTransition(new Fade(Fade.IN).setDuration(500));//按返回键以后,重新进入的上一步的activity显示的动画getWindow().setReenterTransition(new Fade(Fade.IN).setDuration(500));
ViewAnimationUtils
发现一个实用的动画工具,ViewAnimationUtils
里面只有一个静态的方法
static Animator createCircularReveal (View view,
int centerX,
int centerY,
float startRadius,
float endRadius)
这个方法创建了一个animator,从参数就可以看出,就是创建一个圆环放大的动画,需要设置中心点,起始半径,最终半径。
配合各种动画效果,可以实现很平滑的效果。
比如在点击某按钮以后,需要显示新内容的地方来这么一个揭露动画,效果棒极了。
需要注意的是,这个揭露动画是覆盖目标view的
也就是说,相当于一个覆盖在目标view上的一个幕布,然后揭露隐藏在幕布下面的内容。
所以可以在anim.start()之前就设置好要显示的内容,然后动画再开始执行动画。
和其他的动画一样,可以设置一个listener。
布局变动动画
Transition-google developer
实用transition
正如官网介绍的一样,在应用的布局发生变动的时候,可以展现动画来显示变动。
具体的在官网和之前的参考里面都有。
简单说明一下
1,可以对一个需要变动的布局设置成scene,然后用transitionManager来启动不同scene之间变化的动画。
2,如果使用TransitionManager.beginDelayedTransition(mView, mFade);
那么可以不设置scene,在接下来的改变布局参数的时候,就自动用动画来展示。
- Android 笔记 transition / 转换动画
- Android Transition动画学习笔记
- Android Transition动画学习笔记 2
- Android自定义Transition动画
- Android动画:Transition
- Android Transition动画
- Android自定义Transition动画
- android 动画 过渡动画 transition
- Android学习笔记之Transition——Transition简单动画(1)
- 【代码笔记】iOS-Transition动画
- Android Transition 学习笔记
- Android动画--Activity过渡动画 Transition
- Android 笔记 transition 补充 --content transition / activity transition
- css3动画属性--transition(转换)
- Android Transition(Android过渡动画)
- transition动画
- android 5.x—过渡动画Transition
- android 5.x转场动画Transition
- blkid命令 ---待整理
- fdisk命令 ---待整理
- mount命令 --待整理
- /usr/include/asm-generic/errno-base.h
- 蓝桥杯基础练习 01字串
- Android 笔记 transition / 转换动画
- hdu 3466 要排序的动归
- Leetcode-23. Merge k Sorted Lists
- 流水灯
- 使用git删除、添加github项目上的文件
- 蜂鸣器
- 初学html笔记
- openresty url重写
- 继电器