Итак, у меня есть анимированный вид, который я хочу вернуть в центр экрана после завершения анимации. Я хочу использовать этот код, чтобы получить центр обзора к центру экрана:
fun gotothecenter(){
val screencenterX = (FullscreenActivity.metrics.widthPixels - mContentView.width) / 2
val screencenterY = (FullscreenActivity.metrics.heightPixels - mContentView.height) / 2
val soultostartx = ObjectAnimator.ofFloat(mContentView, "x", screencenterX.toFloat()).apply {
duration = 1
}
val soultostarty = ObjectAnimator.ofFloat(mContentView, "y", screencenterY.toFloat()).apply {
duration = 1
}
fun toStart() = AnimatorSet().apply {
play(soultostartx).with(soultostarty)
start()
}
toStart()
}
Это работает нормально, если я сохраняю ту же ориентацию экрана, но как только телефон поворачивается в альбомной ориентации рассматриваемый вид переходит в верхний левый угол экрана.
Я использую следующий код в своей основной деятельности для учета изменения конфигурации:
override fun onConfigurationChanged(myConfig: Configuration) {
super.onConfigurationChanged(myConfig)
val orient = resources.configuration.orientation
when (orient) {
Configuration.ORIENTATION_LANDSCAPE -> {
(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
FullscreenActivity.metrics = DisplayMetrics()
}
Configuration.ORIENTATION_PORTRAIT -> {
(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
FullscreenActivity.metrics = DisplayMetrics()
}
else -> {
(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
FullscreenActivity.metrics = DisplayMetrics()
}
}
}
Любой подсказки чего мне не хватает?