web-dev-qa-db-fra.com

Définir l'interpolateur pour les animations Android en Java

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?

36
ACarter
setInterpolator(new BounceInterpolator());
79
Reuben Scratton
anim.setInterpolator(context, Android.R.anim.bounce_interpolator);
14
Zsolt Safrany

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 .

0
CoolMind