translationY
вида в макете равно 0. Если вы хотите анимировать его снизу до текущей позиции - вам следует изменить translationY
значения с некоторого положительного значения на 0.
private fun animateLogo() {
val translationYFrom = 400f
val translationYTo = 0f
val valueAnimator = ValueAnimator.ofFloat(translationYFrom, translationYTo).apply {
interpolator = LinearInterpolator()
duration = 1000
}
valueAnimator.addUpdateListener {
val value = it.animatedValue as Float
main_image_logo?.translationY = value
}
valueAnimator.start()
}
То же самое можно сделать следующим образом:
private fun animateLogo() {
main_image_logo.translationY = 400f
main_image_logo.animate()
.translationY(0f)
.setInterpolator(LinearInterpolator())
.setStartDelay(1000)
.start()
}
Добавьте эти строки в LinearLayout
и ConstraintLayout
, потому что без них LinearLayout
будет вырезать части анимированного представления, когда оно выходит за пределы LinearLayout
. 1013 *
android:clipChildren="false"
android:clipToPadding="false"
Или сделать main_image_logo
прямым потомком root ConstraintLayout
. Вот результат: ![result](https://i.stack.imgur.com/D49eU.gif)