При щелчке я хочу переместить ImageView в центр кнопки, поэтому я решил взять координаты центра и затем поместить эти координаты в Objectanimator, которые я затем запускаю одновременно из onClickListener. Я думал, что код ниже должен сделать это.
var centerX = (dobutton.left + dobutton.right)/2
var centerY = (dobutton.top + dobutton.bottom)/2
var soultoX = ObjectAnimator.ofInt(R.id.soul, "x", centerX).apply {
duration = 1000
}
var soultoY = ObjectAnimator.ofInt(R.id.soul, "y", centerY).apply {
duration = 1000
}
fun soulToButton() = AnimatorSet().apply {
play(soultoX).with(soultoY)
start()
}
dobutton.setOnClickListener {
[...]
soulToButton()
[...]
}
При нажатии ничего не происходит. Есть идеи почему и как это исправить?
Редактировать: я заменил centerY
и centerX
в переменных soulToX/Y
различными числами. Это также не имело никакого эффекта. Все еще никакого движения вообще на щелчке. Он отлично работает с ofFloat
и плавает, поэтому проблема, похоже, связана со значениями Int и ofInt
. Я вижу два возможных решения, которые я не знаю, как реализовать: заставить работать с Int или сделать плавающие centerX
и centerY
. У кого-нибудь есть идеи для этого?