Android 值Animator在启动时复制值
我正在使用ValueAnimator(从)为我的视图组中的视图设置动画Android 值Animator在启动时复制值,android,animation,Android,Animation,我正在使用ValueAnimator(从)为我的视图组中的视图设置动画 ValueAnimator anim = ValueAnimator.ofInt(mHandleRect.left, mDisplayRect.right - mHandleWidth); anim.setDuration(delta); anim.addUpdateListener(onAnimationUpdateListener); anim.addListener(onAnimat
ValueAnimator anim = ValueAnimator.ofInt(mHandleRect.left, mDisplayRect.right - mHandleWidth);
anim.setDuration(delta);
anim.addUpdateListener(onAnimationUpdateListener);
anim.addListener(onAnimationListener);
anim.start();
在本例中,从0到402,但我已尝试使用其他值
然后我使用动画更新侦听器中的值:
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int val = (Integer) animation.getAnimatedValue();
Log.d("Animation Animating", " Current Value " + val);
}
现在,问题来了:
第一个值都是0,多次
04-06 22:24:40.128: D/Animation Animating(22500): Current Value 0
04-06 22:24:40.128: D/Animation Animating(22500): Current Value 0
04-06 22:24:40.313: D/Animation Animating(22500): Current Value 0
04-06 22:24:40.313: D/Animation Animating(22500): Current Value 0
04-06 22:24:40.323: D/Animation Animating(22500): Current Value 0
04-06 22:24:40.338: D/Animation Animating(22500): Current Value 4
04-06 22:24:40.418: D/Animation Animating(22500): Current Value 66
04-06 22:24:40.448: D/Animation Animating(22500): Current Value 104
04-06 22:24:40.463: D/Animation Animating(22500): Current Value 128
04-06 22:24:40.478: D/Animation Animating(22500): Current Value 152
04-06 22:24:40.493: D/Animation Animating(22500): Current Value 175
04-06 22:24:40.513: D/Animation Animating(22500): Current Value 201
04-06 22:24:40.533: D/Animation Animating(22500): Current Value 232
04-06 22:24:40.548: D/Animation Animating(22500): Current Value 255
04-06 22:24:40.563: D/Animation Animating(22500): Current Value 280
04-06 22:24:40.603: D/Animation Animating(22500): Current Value 335
04-06 22:24:40.628: D/Animation Animating(22500): Current Value 360
04-06 22:24:40.653: D/Animation Animating(22500): Current Value 378
04-06 22:24:40.668: D/Animation Animating(22500): Current Value 389
04-06 22:24:40.698: D/Animation Animating(22500): Current Value 400
04-06 22:24:40.713: D/Animation Animating(22500): Current Value 402
这会导致可见动画的延迟和抖动开始
我已经尝试扩展了持续时间和值,但问题仍然存在
有没有人遇到过同样的问题,或者我需要吹毛求疵?我遇到过类似的问题,但在我的情况下,更新后的值在起始值和结束值之间变化 试试这个:
int mPrevious = -1;
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int val = (Integer) animation.getAnimatedValue();
if(val != mPrevious){
Log.d("Animation Animating", " Current Value " + val);
mPrevious = val;
}
}
逻辑语句不应具有任何性能或视觉效果
或者,您可以尝试添加0作为延迟时间。这将使动画师立即开始制作动画。这不是问题所在。动画仅适用于大于0的值。真正的问题是这个动画师类产生的延迟。在动画真正开始之前,我有大约200-300毫秒的延迟。因为有多个0值。动画设置开始延迟(0);没有帮助。你找到原因了吗?我遇到了同样的问题。