Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

227
Views
Cómo repetir la animación de Android

Estoy tratando de obtener dos vistas para moverme al centro de la pantalla y recuperarme x cantidad de veces.

Este código hace eso pero se ejecuta solo una vez. ` val view = findViewById(R.id.imageView2)

 val animation = SpringAnimation(view, DynamicAnimation.TRANSLATION_Y, 0f) val view2 = findViewById<View>(R.id.imageView3) val animation2 = SpringAnimation(view2, DynamicAnimation.TRANSLATION_Y, 0f) findViewById<View>(R.id.imageView2).also { img -> SpringAnimation(img, DynamicAnimation.TRANSLATION_Y).apply { animation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_HIGH_BOUNCY) animation.spring.stiffness = SpringForce.STIFFNESS_VERY_LOW animation.animateToFinalPosition(50f) } } findViewById<View>(R.id.imageView3).also { img -> SpringAnimation(img, DynamicAnimation.TRANSLATION_Y).apply { animation2.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_HIGH_BOUNCY) animation2.spring.stiffness = SpringForce.STIFFNESS_VERY_LOW animation2.animateToFinalPosition(-100f) } }`

Entonces, ¿cómo hago para que se ejecute x número de veces? Esto es obviamente Spring Animation, pero no estoy casado con eso. Si hay otra animación que lograría esto, estaría totalmente abierto a cambiar.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Establecer android:repeatCount="infinite" en la carpeta anim

over 4 years ago · Santiago Trujillo Report

0

Puede ejecutar varias SpringAnimation s en la misma View llamando repetidamente a animateToFinalPosition(translation) con una secuencia de valores de traducción .

Por ejemplo:

 startSpringAnimations(findViewById<View>(R.id.imageView1), 300f, 6) startSpringAnimations(findViewById<View>(R.id.imageView2), -600f, 6)

con una función

 /** * [view] will be moved using [times] SpringAnimations over a distance of abs([totalTranslation]) * If [totalTranslation] is negative, direction will be up, else down */ private fun startSpringAnimations(view: View, totalTranslation: Float, times: Int ) { if(times <= 0){ return } val translation = totalTranslation/ times.toFloat() SpringAnimation(view, DynamicAnimation.TRANSLATION_Y, 0f).apply{ spring.dampingRatio = SpringForce.DAMPING_RATIO_HIGH_BOUNCY spring.stiffness = SpringForce.STIFFNESS_VERY_LOW addEndListener(object: DynamicAnimation.OnAnimationEndListener{ private var count = 1 override fun onAnimationEnd(animation1: DynamicAnimation<*>?, canceled: Boolean, value: Float, velocity: Float) { Log.d("SpringAnimation", "onAnimationEnd: animation $animation1 canceled $canceled value $value velocity $velocity count $count") if (canceled) return count++ if(count <= times){ animateToFinalPosition(translation * count) } } }) animateToFinalPosition(translation) } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!