gpt4 book ai didi

android - 如何在 Android 中使用动画将 View 移动到另一个 View ?

转载 作者:太空狗 更新时间:2023-10-29 16:28:42 26 4
gpt4 key购买 nike

我在屏幕中央有一个圆圈,里面有一个 ImageView + TextView。我还有另外两个 ImageView+TextView,一个在屏幕顶部,另一个在屏幕底部。 Here's the UI mockup我的要求是:

我想要一份顶部的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com