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

标签 android animation view android-animation layout-animation

我在屏幕中央有一个圆圈,里面有一个 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/

相关文章:

java - FilePickerActivity.EXTRA_MODE、FilePickerActivity.MODE_FILE

angular - Angular 4动画如何正确过渡routeroutlet?

javascript - AngularJS:从布局更新 View 内容

jquery - 在 jQuery 中动画前缀 CSS 规则

android - TransitionDrawable 的问题

c# - 使用 PagedList.Mvc 在我的 View 中创建页面会出现构建错误

javascript - Ractive.js 中的多维数组

java - Apache 的 Base64.encodeBase64 和 Android 的 Base64.encode 与 Base64.Default 标志之间有什么区别吗?

android - OnCreateContextMenu 和 ListView 项

java - 待定 Intent 并设置闹钟重复