我在屏幕中央有一个圆圈,里面有一个 ImageView
+ TextView
。我还有另外两个 ImageView
+TextView
,一个在屏幕顶部,另一个在屏幕底部。
我的要求是:
我想要一份顶部的 ImageView
+TextView
和一份底部的 ImageView
+TextView
在动画中移动到圆的中心,从而改变圆内 textView 的值。
例如:
假设顶部 textView 的值为 200,底部 textview 的值为 300。我希望这些值的一部分(例如 100 或 150)进行动画处理并移入圆圈,但原始值 200 和 300 应保持在同一位置.
我试过使用 TranslateAnimation
。但是我在寻找中心圆的 x 和 y 坐标时遇到问题。它并没有完全到达圆心。原始 View 的
位置也不会保留。
TranslateAnimation animation = new
TranslateAnimation(startLayout.getX(),endLayout.getX(),
startLayout.getY(),endLayout.getY);
animation.setDuration(1000);
animation.setFillAfter(false);
startView.startAnimation(animation);
startLayout 是 ImageView 和 TextView 所在的线性布局。 请帮忙!谢谢!
最佳答案
我有同样的问题,我通过使用下一个代码解决了(抱歉在 Kotlin 中,但在 Java 中工作相同)。假设 viewFirst 想要到达 viewTwo 位置:
(不要使用):
viewFirst.animate()
.translationX(viewSecond.x)
.translationY(viewSecond.y)
.setDuration(1000)
.withEndAction {
//to make sure that it arrives,
//but not needed actually these two lines
viewFirst.x = viewSecond.x
viewFirst.y = viewSecond.y
}
.start()
(使用此解决方案):
viewFirst.animate()
.x(viewSecond.x)
.y(viewSecond.y)
.setDuration(1000)
.withEndAction {
//to make sure that it arrives,
//but not needed actually these two lines
viewFirst.x = viewSecond.x
viewFirst.y = viewSecond.y
}
.start()
关于android - 如何在 Android 中使用动画将 View 移动到另一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44212948/