Я следил за этой статьей блога о разработке Android, а вот его исходный код.
Демонстрация работает хорошо, однако обычно мы предпочитаем использовать масштаб centerCrop
в списке изображений и использовать fitCenter
в режиме детализации. Когда я изменяю код для достижения этой цели, переход не может иметь дело с изменением типа шкалы. При возврате из фрагмента детализации анимация начинается с неправильного типа масштаба.
Я нашел переход ChangeImageTransform
. В документе говорится:
Этот переход захватывает матрицу ImageView до и после смены сцены и анимирует ее во время перехода.
В сочетании с ChangeBounds ChangeImageTransform позволяет объектам ImageView, которые изменяют размер, форму или ImageView.ScaleType, плавно анимировать содержимое.
Поэтому я изменил набор переходов:
<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>
А вот анимация становится намного уродливее:
Как плавно переходить между разными типами масштаба?