Dies scheint sehr einfach zu sein: Ich versuche, den Interpolator so einzustellen, dass er für eine Animation in meiner App verwendet wird. Ich muss dies im Java-Code einstellen, nicht im XML-Code (es wird sich je nach verschiedenen Dingen ändern).
Auf der Android-Website habe ich setInterpolator()
gefunden.
Ich bin mir jedoch nicht sicher, wie ich damit umgehen soll.
Ich habe nur versucht, den Interpolar-Namen einzugeben (dh BounceIterpolator
), aber dies hat nichts getan.
Ich habe R.anim.BounceIterpolator
versucht, aber Intellisense sagte anim cannot be resolved or is not a field
.
Wie kann ich also den Interpolator von Java aus einstellen?
setInterpolator(new BounceInterpolator());
anim.setInterpolator(context, Android.R.anim.bounce_interpolator);
Android unterstützt jetzt echten Frühling und Physik in Animationen. Es ist Teil einer abwärtskompatiblen Bibliothek. Link
Für benutzerdefinierte Interpolatoren:
Interpolator customInterpolator = PathInterpolatorCompat.create(cpX1,cpX2,cpY1,cpY2)
Dank amalBit habe ich einen Interpolator mit einer PathInterpolator
für eine ProgressBar
in Kotlin geschrieben.
val path = Path()
path.lineTo(0.1f, 0.2f)
path.lineTo(0.7f, 0.9f)
path.lineTo(1f, 1f)
val animation = ObjectAnimator.ofInt(progress_bar, "progress", 0, 100)
animation.duration = 2000
animation.interpolator = PathInterpolatorCompat.create(path)
animation.addListener(object : Animator.AnimatorListener {
override fun onAnimationStart(animator: Animator) {}
override fun onAnimationEnd(animator: Animator) {
finish()
}
override fun onAnimationCancel(animator: Animator) {}
override fun onAnimationRepeat(animator: Animator) {}
})
animation.start()
Weitere Beispiele finden Sie unter https://www.programcreek.com/Java-api-examples/index.php?api=Android.view.animation.PathInterpolator .