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