gpt4 book ai didi

android - 动画边距变化

转载 作者:行者123 更新时间:2023-12-01 11:24:58 25 4
gpt4 key购买 nike

我将此代码用于android中的动画 View ,它的工作完美
当我将边距设置为零或边距小于当前边距时出现问题,它没有动画

编码

          int margin = 100;


ValueAnimator varl = ValueAnimator.ofInt(margin);
varl.setDuration(200);
varl.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override
public void onAnimationUpdate(ValueAnimator animation) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) myView.getLayoutParams();
lp.setMargins((Integer) animation.getAnimatedValue(), 0, 0, 0);
myView.setLayoutParams(lp);
}
});
varl.start();

现在,当我将边距设置为 100 时,它会设置动画,但是当我想将其设置为零时,它的设置边距没有动画
 int margin = 0;



ValueAnimator varl = ValueAnimator.ofInt(margin);
varl.setDuration(200);
varl.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override
public void onAnimationUpdate(ValueAnimator animation) {
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) myView.getLayoutParams();
lp.setMargins((Integer) animation.getAnimatedValue(), 0, 0, 0);
myView.setLayoutParams(lp);
}
});
varl.start();

最佳答案

问题是你没有使用 ValueAnimator.ofInt(int... values);正确:你应该明确告诉动画师 来自 其中它应该动画哪个值。因此,例如,您应该从当前值动画到想要的值。例如,如果您之前的值是 50,那么语句应该是这样的:
ValueAnimator varl = ValueAnimator.ofInt(50, margin);

关于android - 动画边距变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com