0

Ich entwickle eine Animation, die eine Ansicht zeigen muss, die progressiv schneller wächst. Ich möchte den gleichen Effekt erzielen, den Sie sehen, wenn ein Auto kommt. Wenn es weit ist, ist die kommende Bewegung langsam, aber je näher das Fahrzeug ist, desto schneller ist das Auto für Ihre Vision.Wie erstellt man einen ScaleX ObjectAnimator mit immer schnellerem Ende?

Bei der Verwendung von ScaleX mit ObjectAnimator, haben Sie einige Möglichkeiten der Interpolation:

AccelerateDeccelerateInterpolator (default) -> very slow when the animation is close to finish... 
AccelerateInterpolator -> Also slowing when the ScaleX is too much huge. 
LinearInterpolator -> Even more slower when the ScaleX is too much huge. 
FastOutSlowInInterpolator -> Still slow at the end. 

Wie kann die ScaleX Animation eine Wirkung erhalten Geschwindigkeit der Skala mit der Zeit zu erhöhen?

Mein Beispielcode:

scaleX = ObjectAnimator.ofFloat(view, "scaleX", 0.1f, 20f);   
scaleX.setDuration(10000); 
scaleX.setInterpolator(new AccelerateInterpolator()); 
scaleX.start(); 

Danke

Antwort

0

Gelöst eine benutzerdefinierte kubischen Bezier-Kurve mit dieser Bahn zu schaffen: https://matthewlein.com/ceaser/

Interpolator customInterpolator = PathInterpolatorCompat.create(cpX1,cpX2,cpY1,cpY2) 

die resultierende Kurve zu diesem ähnlich ist:

 | 
    | 
_____/ 
Verwandte Themen