Android 5.x的Activity过渡动画.

来源:互联网 发布:程序员专用键盘 编辑:程序博客网 时间:2024/05/28 15:08

    曾经的Android在Activity进行跳转的时候,只是非常生硬的切换,即使通过OverridePendingtransition(int inId,int outId)这个方法给Activity增加一些切换动画,效果也只是差强人意.而在Android 5.X中,Google对动画效果进行了更深一步的诠释,为Activity的转场效果设计了更加丰富的动画效果.

    效果晚上下班后补发,GenyMotion蹦了.委屈

    Android 5.x提供三种Transition类型:

        1.进入:一个进入的过渡动画决定了Activity中的所有的视图怎么进入屏幕.

        2.退出:一个退出的过渡动画决定了Activity中的所有的视图怎么退出屏幕.

        3.共享元素:一个共享元素过渡动画决定了两个Activities中间的过渡,怎么共享他们的视图.

    那么进入和退出动画可以用下面代码去实现:

        a中的activity中:

startActivity(intent,ActivityOptions.makeSceneTtransitionAnimation(this),toBundle());
        b中的activity中:

getWindow().setEnterTransition(new Explode());//进入动画getWindow().setExitTransition(new Explode());//退出动画

    进入,退出动画分为:

        explode(分解):从屏幕中间进或者出去,移动视图

        slide(滑动):从屏幕边缘进入或者出去,移动视图

        fade(淡出):通过改变屏幕上视图的不透明度达到添加或者移除视图


    下面是共享元素:

        changeBounds:改变目标视图的布局边界

        changeClipBounds:裁剪目标视图边界

        changeTransform:改变目标视图的缩放比例和旋转角度

        changeImageTransform:改变目标图片的大小和缩放比例

    使用方式:

    我们需要在XML文件中将需要共享的控件命名.命名必须要一样,例如我在a中的Button取名为"one"那么b中的Button取名就需要为"one",那么当activity跳转的时候会自动找到相同名字的控件,进行对应的共享动画.

android:transitionName="XXX"
    然后在启动第二个activity的时候需要:

startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this,view,"share").toBundle());//这里的share就是自己命名.

GitHub地址:项目地址

0 0
原创粉丝点击