demo
- animate
- plaid
- android-topeka
系统API
入门博客系列
Backport lib
自定义Activity的过场动效
Fragment过场动效
mFragmentManager.beginTransaction()
.setCustomAnimations(R.anim.slide_down, R.anim.slide_up, R.anim.slide_down, R.anim.slide_up)
.add(android.R.id.content, new SelfHomeFragment(), SelfHomeFragment.class.getName())
.commit();
setCustomAnimations调用的顺序一定要是第一个,否则会不起效。
使用add、remove,则会有两层Fragment同时显示的效果。
Fragment share animation
Transition Animations
- property animator
View.animate()
方法返回一个ViewPropertyAnimator
,它包含对View各种属性的动画改变API。- 通过动画API改变view的属性(位置),动画结束后,View会停留在结束时的状态(位置、大小等);
ObjectAnimator
、ObjectAnimator.ofFloat(Object target, String propertyName, float... values)
,该方法将通过反射对View进行动画展示。
- 基于Scene的动效:系统自动检测两个Scene之间的区别,然后用动效进行过渡;
- Scene可以用代码创建,也可以由xml定义;
ChanngeBounds
,Fade
,AutoTransition
,...,TransitionSet
,AutoTransition.setOrdering()
,TransitionSet.setOrdering()
;- 变化的View要有公共的父Layout;
- 无公共父Layout:
setReparent()
,但是效果并不是十分完美;
- Material design的动画效果
- RippleDrawable, backport to API 14
- CircularReveal, backport to API 9
- AnimatedVectorDrawable, backport to API 14
- SharedElementEnterTransition, backport to API 14
- AnimatedStateListDrawable