android5.0的transition属性设置动画,初步使用。
来源:互联网 发布:数据加密算法有哪些 编辑:程序博客网 时间:2024/05/15 21:05
在泡网上看到一篇2016年制的学习的五个开源项目
第一篇是一个讲究动画的项目,其中transition这个属性之前一直没有学习到,啊,感觉好多东西都落伍了,老师教的东西还停留在上个世纪。于是自己来慢慢发掘用法吧,捣鼓activity之间的切换都让我用尽洪荒之力了。
个人的基本概念理解
在两个activity之间切换的时候,transition把这个过程分成了四种类型
假定有a和b两个activity
从a调用b 这里会产生a的退出(exit)
b的进入 (enter)
从b返回a 这里会产生b的返回(return)
a的再进入(reenter)
基本动画就是在这四个阶段做处理(但是我一直不知道为什么a的退出没有效果)
动画设置
首先当然是建立两个activity啦
各自有一个button来触发事件
在activity a里面
setContentView之前调用Window下的方法设置活动a的退出和再进入
同理在activity b里面
setContentView之前调用Window下的方法设置活动b的进入和返回
这是activity a的相关
super.onCreate(savedInstanceState); getWindow().setExitTransition(new Fade()); getWindow().setReenterTransition(new Slide().setDuration(1000)); setContentView(R.layout.activity_main);
可以看到,a里面设置的行为是Exit和Reenter的属性,设置exit的动画为fade,设置 Reenter的属性为slide并设置动画时长为2000ms,这和Animation的属性设置一个意思一个意思。
这是activity b的相关
super.onCreate(savedInstanceState); getWindow().setEnterTransition(new Explode().setDuration(2000)); getWindow().setReturnTransition(new Fade().setDuration(1)); setContentView(R.layout.activity_main2);
这个就很容易理解了,分别设置了enter和return的动画为explode和fade,并分别设置了相应的动画时间。
不同的跳转方法
接下来就是从活动a跳转到活动b,再从b返回到活动a来看效果
这里因为设置了动画,所以代码和普通的intent跳转不太一样,也不能直接finish
在活动a里面,startActivity方法需要用一个重载
Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
活动b里面则需要执行另外一个方法
finishAfterTransition();
在a和b之间跳转就能够依次看到a的exit和b的enter,b的return和a的reenter,两两对应,一起执行。但是实际测试中发现,a的exit我没有效果,不知道怎么回事。
代码片段(指定布局里面的view的动画)
当然这个transition也是可以用在activity托管的viewgroup的view的
TransitionManager.beginDelayedTransition(rootView,new Fade()); toggleVisibility(bt1,bt2,bt3,bt4);private static void toggleVisibility(View... views){ for (View v:views) { boolean isVisible = v.getVisibility()==View.VISIBLE; v.setVisibility(isVisible?View.INVISIBLE:View.VISIBLE); } }
rootView是一个viewgroup,比如你的LinearLayout啊之类的,bt1…bt4则是viewGroup上面的控件,这里做的事情是,判断view是否处于可见状态,如果可见,则点击之后变为不可见,如果不可见,点击之后变为可见,而这个可见和不可见切换的时候,则触发设置好的transition属性(这里是fade)
这个fade仅仅适用于设置的viewGroup,因为这里的view都是在这个viewGroup上,所以才能适用。
- android5.0的transition属性设置动画,初步使用。
- android5.0 Activity transition
- ValueAnimator的初步使用(动画属性)
- css动画的transition渐变属性
- transition属性定义动画
- css3.0中transition属性设置过度的动态效果
- vue2.0使用animate.css动画,transition&transition-group
- 属性动画的初步认识
- android5.0的过度动画
- vue2.0 transition -- 动画使用心得
- vue Transition动画使用
- 动画--过渡属性 transition-property
- 利用css3属性:transition-duration来做简单的动画
- CSS3中和动画有关的属性transform、transition 和 animation
- CSS3中和动画有关的属性transform、transition 和 animation
- CSS3中和动画有关的属性transform、transition 和 animation
- CSS3中的动画,animation、transition和transform属性的运用
- CSS3中的动画,animation、transition和transform属性的运用
- UVa839-Not So Mobile
- MyEclipse 2015 Mac破解版 | 史蒂芬周的博客
- 单调栈
- List和Set的contains()方法实现原理
- MapReduce的shuffle过程
- android5.0的transition属性设置动画,初步使用。
- Android HTML5 audio autoplay无效问题
- hdu4417 Super Mario
- Awesome Design Patterns Summary in java
- hadoop元数据管理机制
- Java基础 注解 学习笔记
- 浙大PAT甲级 1112
- 第二周项目3-体验复杂度两种排序算法的 运行时间
- NYOJ 214 单调递增子序列(二) (LIS模板)