android5.0后的动画
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