Cela semble très simple: j'essaie de définir l'interpolateur à utiliser pour une animation dans mon application. Je dois définir ceci dans le code Java, pas dans le XML (cela changera en fonction de différentes choses).
Sur le site Android, j'ai trouvé setInterpolator()
Cependant, je ne sais pas comment l'utiliser.
J'ai essayé simplement de me nourrir du nom interpolaire (c.-à-d. BounceIterpolator
), mais cela n'a rien fait.
J'ai essayé R.anim.BounceIterpolator
, mais Intellisense a dit anim cannot be resolved or is not a field
.
Alors, comment puis-je définir l'interpolateur à partir de Java?
setInterpolator(new BounceInterpolator());
anim.setInterpolator(context, Android.R.anim.bounce_interpolator);
Merci à amalBit j’ai écrit un interpolateur avec un PathInterpolator
pour un ProgressBar
en Kotlin.
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()
Voir plus d'exemples sur https://www.programcreek.com/Java-api-examples/index.php?api=Android.view.animation.PathInterpolator .