我在我的应用程序中使用动画。我的动画正在将一个小布局移动到它离开屏幕一半的位置,这是我想要的。
我的问题是,当我使用时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),我将视图转换到动画结束的位置,因此它可以使用。但在那之后(这是我的问题)布局被重新排列,因此其中的所有视图都不会通过缩小它们而超出屏幕,我不希望这样。我希望视图继续保持一半。
我设法说清楚了吗?