从android5.0开始系统引入了非常酷炫的转场动画,如何实现请自行google,网上的例子一大把,但是说的都是一些静态资源View,本人在做一个类似app自带图库例子时,当子页面中的图片需要从网络下载时,发现效果跟想象中的不一样。如下图所示:
可以看到当点击后,图片并没有那种慢慢放大的流畅感,图片是一闪就放大了。其实我们仔细想想的话,也会觉得这样做是行不通的,因为跳到第二个页面时,图片需要从网络再次加载。这时候图片可能还没下载完成,所以渲染后的界面是不能预期的。
经过一段时间摸索后发现了Activity的两个神奇api,android.app.Activity#postponeEnterTransition和android.app.Activity#startPostponedEnterTransition,看看这两个api的Javadoc。
就像这两个api描述的那样,看起来正式我们需要的。二话不说,把这两个api用起来看看效果先。
1、在子页面的Activity.onCreate方法中加入supportPostponeEnterTransition();
2、在图片加载回调方法中调用supportStartPostponedEnterTransition();
注意:这里使用的supportPostponeEnterTransition和supportStartPostponedEnterTransition方法是AppCompatActivity提供的兼容方法。兼容API 21以下的系统。
OK,跑一下看看效果吧。Good!!!