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

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

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

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

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