欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

android5.0后的动画

程序员文章站 2022-07-01 16:37:07
android5.0以后,系统添加了很多动画,给我们使用,今天记录几个activity的跳转时候的动画。系统的的 androidx.core.app.ActivityOptionsCompat 类的5个静态方法:...

android5.0以后,系统添加了很多动画,给我们使用,今天记录几个activity的跳转时候的动画。

1、首先使用动画,需要在style中添加

windowContentTransitions="true"才能使用动画。

2、系统的  androidx.core.app.ActivityOptionsCompat  类的提供的5个静态方法:

android5.0后的动画

2.1 makeCustomAnimation:用户自定义动画,定位进入,退出的动画,跟转场动画overridePendingTransition效果一样。

makeCustomAnimation(@NonNull Context context, int enterResId, int exitResId) 

第一个参数是进入的资源id。

第二个参数是退出的资源id。

 

2.2 makeClipRevealAnimation:从一个点,以圆形,渐变到满屏。

makeClipRevealAnimation(@NonNull View source, int startX, int startY, int width, int height)

第一个参数是想要放大的view。

第二个和第三个参数是起始的x,y坐标。

第四个和第五个坐标是:过渡效果开始的大小。

 

2.3 makeScaleUpAnimation:放大一个view,然后显示新的activity。

makeScaleUpAnimation(@NonNull View source, int startX, int startY, int startWidth, int startHeight) 

第一个参数:想要放大的view。

第二个和第三个参数:放大开始的x,y坐标。

第四个和第五个参数:新的activity从多大开始放大。

 

2.4 makeThumbnailScaleUpAnimation:和makeScaleUpAnimation方法类似。

 

2.5 makeSceneTransitionAnimation:共享元素动画

所谓的共享元素动画,就是指从2个activity有一些共享的控件,从activityA跳转到activityB,共享的控件会有缩放的效果。

关闭activityB也会有缩放的效果。

这里所谓的共享控件,不是真的共享,只是视觉上的像是同一个控件。

makeSceneTransitionAnimation(@NonNull Activity activity, @NonNull View sharedElement, @NonNull String sharedElementName) 

第一个参数:当前activity

第二个参数:共享的view

第三个参数:共享元素的android:transitionName的值。

还有一个重载的方法:makeSceneTransitionAnimation(@NonNull Activity activity, Pair<View, String>... sharedElements)可以添加多个共享的控件。

 

本文地址:https://blog.csdn.net/jinshitou2012/article/details/107363329