android - ValueAnimator duplicate Values when starting -
im using valueanimator (from nineoldandroids) animate view in viewgroup.
valueanimator anim = valueanimator.ofint(mhandlerect.left, mdisplayrect.right - mhandlewidth); anim.setduration(delta); anim.addupdatelistener(onanimationupdatelistener); anim.addlistener(onanimationlistener); anim.start();
in case 0 402, have tried other values.
then i'm using values in animation update listener:
@override public void onanimationupdate(valueanimator animation) { int val = (integer) animation.getanimatedvalue(); log.d("animation animating", " current value " + val); }
now, here comes problem:
the first values 0, multiple times
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
this results in delayed , juddery start of visible animation.
i have tried expand duration , values, problem still exists.
have same problem, or nit-pick?
i've run similar issue, in case updated value varying between start value , end value.
try this:
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; } }
logic statement should not have performance or visual hits.
alternatively try add 0 delayed time. make animator start animating immediately.
Comments
Post a Comment