android 转场之transition

前言

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值