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