android动画移动视图到另一个视图

pun*_*sta 7 android coordinates android-animation android-layout

我在不同的布局中有两个视图,我想将它们移动到另一个.我的代码出了什么问题?Y动画播放错误.第一个视图位于片段的布局中,第二个视图位于状态栏中

    ...
    int p1[] = new int[2];
    int p2[] = new int[2];
    viewOne.getLocationInWindow(p1);
    viewTwo.getLocationInWindow(p2);


    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet
            .play(ObjectAnimator.ofFloat(expandedImageView, "X", p1[0], p2[0] - p1[0]))
            .with(ObjectAnimator.ofFloat(expandedImageView, "Y", p1[1], p2[1] - p1[1]))
            .with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_X, startScale))
            .with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_Y, startScale));
Run Code Online (Sandbox Code Playgroud)

小智 22

我有另一个解决方案:(将viewOne移动到viewTwo)

 TranslateAnimation animation = new TranslateAnimation(0, viewTwo.getX()-viewOne.getX(),0 , viewTwo.getY()-viewOne.getY());
    animation.setRepeatMode(0);
    animation.setDuration(3000);
    animation.setFillAfter(true);
    viewOne.startAnimation(animation); 
Run Code Online (Sandbox Code Playgroud)