android 转场之transition
来源:互联网 发布:js弹出div模态窗口 编辑:程序博客网 时间:2024/06/05 03:26
前言
5.0activity之间过度,有很多绚丽的效果,前面学习了共享元素,下面来学习下,Slide实现布依次一次滑入界面。
代码实现
Android studio1.5
sdk 23.1.1
1.设置相关的主题属性
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="android:colorPrimary">@color/colorPrimary</item> <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:colorAccent">@color/colorAccent</item> <item name="android:textColorPrimary">@android:color/black</item> //下面这三个一定要有 <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOverlap">false</item> <item name="android:windowAllowReturnTransitionOverlap">false</item> </style>
2.在代码中设置具体的transtion效果
private void setupWindowAnimations() { // Re-enter transition is executed when returning to this activity Slide slideTransition = new Slide();//滑出,fade 也可以,什么效果自己上 slideTransition.setSlideEdge(Gravity.LEFT);//滑出的方向 slideTransition.setInterpolator(new DecelerateInterpolator()); slideTransition.setDuration(500);//动画持续时间 getWindow().setReenterTransition(slideTransition);// getWindow().setExitTransition(slideTransition); }
3在跳转时,开始转场过渡
private void startActivity(Class target, Pair<View, String>[] pairs) { Intent i = new Intent(MainActivity.this, target); ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(this,null);//可以指定共享元素,这里为null startActivity(i, transitionActivityOptions.toBundle()); // }
发现
在这个新特性中我们看到了,这个过渡,无非就是给window对象,添加一个转场
getWindow().setReenterTransition(slideTransition);// getWindow().setExitTransition(slideTransition);
这个转场类Transtion
public abstract class Transition implements Cloneable{....}与他相关的类有如下:public class TransitionSet extends Transition {...}public class AutoTransition extends TransitionSet {...}public class ChangeBounds extends Transition {...}public abstract class Visibility extends Transition {...}public class Fade extends Visibility {...}public class Slide extends Visibility {...}
可以看到所有的类都继承自Transition,我们这个demo中的Slide是继承自,Visibility,Visibility又是Tansition的子类。关于Transition看看,官方的介绍(这里我们还要提到另外一个类 Scene ):
1.Scene :
场景是一个视图层次结构的状态的封装,包括在该层次结构中的视图和那些视图的各种值(布局相关和其他)。一个场景可以通过一个布局层次结构来定义,或者通过代码来动态设置场景;
关于Scence的应用,查看下面的连接(本文只是延伸到transtion):
a.http://www.tuicool.com/articles/zAZNVn
2.Transiotn:
转换是一种机制,当一个新的场景被输入时,自动动画发生变化
相关应用
更多相关请查看官方Transtionl框架:
http://wear.techbrood.com/reference/android/transition/package-summary.html
demo下载
http://download.csdn.net/detail/kasieryang/9316387
0 0
- android 转场之transition
- android 5.x转场动画Transition
- Android Transition FrameWork实现转场动画
- android转场动画&共享元素&另外一种动画Transition
- transition转场动画
- 转场动画Scene transition
- Android Animation之transition
- Android Animation之transition
- iOS自定义转场(custom transition)
- jQuery Mobile页面转场data-transition
- jQuery Mobile页面转场data-transition
- jQuery Mobile页面转场data-transition
- Activity transition(Activity转场动画效果)
- android.transition
- Android Transition
- Android Transition
- Android Transition
- Android Transition
- ajax的基础:XMLHttpRequest对象
- Linux设备驱动程序简介
- 魔方阵
- C 专家编程的一些小知识点
- android 图片缩放手势
- android 转场之transition
- 1032. Sharing (25)
- JSON 和 XML 优缺点的比较
- Linux 设备驱动模型
- VC++中字符串编码的转换
- Linux Shell根据进程名杀死进程
- JS转换成带两位小数的数值
- HTML5中使用不同type的属性将会呈现不同的键盘样式
- ELaticSearch——PlainElastic.net.dll 中的JsonNetSerializer