我遵循了这篇Android开发者博客的文章,这是他的源代码。
演示效果不错,但是通常我们在图像列表中使用centerCrop
比例类型,在详细模式下使用fitCenter
。当我修改代码以实现此目的时,过渡效果无法处理比例类型的更改。从详细片段返回时,动画会以错误的比例类型开始。
我找到了ChangeImageTransform
过渡。文档中写道:
该过渡捕获场景变化前后ImageView的矩阵,并在过渡期间对其进行动画处理。
结合ChangeBounds,ChangeImageTransform能够平滑地对通过改变大小、形状或ImageView.ScaleType的ImageView进行内容动画设置。
所以我修改了过渡设置:
<transitionSet
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="375"
android:interpolator="@android:interpolator/fast_out_slow_in"
android:transitionOrdering="together">
<changeBounds/>
<changeImageTransform/>
</transitionSet>
但是动画变得越来越丑陋:
如何在不同的比例类型之间平滑地转换?