0

我在我的应用程序中使用动画。我的动画正在将一个小布局移动到它离开屏幕一半的位置,这是我想要的。

我的问题是,当我使用时params.setMargins(500, 0, 0, 0); resetButton.setLayoutParams(params);,布局会重新排列,其中的所有视图都会变小并被压碎。

我希望布局保持原样,尽管它位于屏幕之外。那可能吗?

我将添加我的代码:

SetAnimationParameters(true);
        mainLayout.startAnimation(animationSet);
        animationSet.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mainLayout.clearAnimation();
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mainLayout
                        .getLayoutParams();
                params.setMargins(500, 0, 0, 0);

                mainLayout.setLayoutParams(params);
            }
        });

这就是我设置动画参数的地方:

private void SetAnimationParameters(boolean isRight) {
    if (isRight) {
        TAnimation = new TranslateAnimation(0, 500, 0, 0);
    } else {
        TAnimation = new TranslateAnimation(500, 0, 0, 0);
    }
    TAnimation.setDuration(250);
    animationSet = new AnimationSet(false);
    animationSet.setFillAfter(true);
    animationSet.addAnimation(TAnimation);
}

正如您在动画完成后所看到的(onAnimationEnd),我将视图转换到动画结束的位置,因此它可以使用。但在那之后(这是我的问题)布局被重新排列,因此其中的所有视图都不会通过缩小它们而超出屏幕,我不希望这样。我希望视图继续保持一半。

我设法说清楚了吗?

4

0 回答 0