problema de la animación androide
quiero jugar escala (de 0 -> 1) animación en 6 bolas, la duración es de 1000 ms en cada bola.
y cada animación tiene que esperar el anterior por 200ms.
ex
anim1.start -> retardo 200ms -> anim2.start (mientras anim1 está jugando) -> ……..
pero siempre tengo todas las animaciones de 6 bolas comenzó al mismo tiempo, no sé por qué, podría
¿¿que alguien me diga??
// show animation. public void showBallAnimation(View v) { LinearLayout ll = (LinearLayout) findViewById(R.id.ball_container); RelativeLayout rl; ScaleAnimation scaleAnim1 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f); scaleAnim1.setDuration(500); scaleAnim1.setStartOffset(0); scaleAnim1.setFillAfter(true); rl = (RelativeLayout) ll.getChildAt(0); rl.setVisibility(View.VISIBLE); rl.startAnimation(scaleAnim1); ScaleAnimation scaleAnim2 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f); scaleAnim2.setDuration(500); scaleAnim2.setStartOffset(200); scaleAnim2.setFillAfter(true); rl = (RelativeLayout) ll.getChildAt(1); rl.setVisibility(View.VISIBLE); rl.startAnimation(scaleAnim2); ScaleAnimation scaleAnim3 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f); scaleAnim3.setDuration(500); scaleAnim3.setStartOffset(400); scaleAnim3.setFillAfter(true); rl = (RelativeLayout) ll.getChildAt(2); rl.setVisibility(View.VISIBLE); rl.startAnimation(scaleAnim3); // Animation anim4 = // AnimationUtils.loadAnimation(getApplicationContext(), // R.anim.ball_scale4); ScaleAnimation scaleAnim4 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f); scaleAnim4.setDuration(500); scaleAnim4.setStartOffset(600); scaleAnim4.setFillAfter(true); rl = (RelativeLayout) ll.getChildAt(3); rl.setVisibility(View.VISIBLE); rl.startAnimation(scaleAnim4); }
Debe cambiar r1.startAnimation(scaleAnimX)
a r1.setAnimation(scaleAnimX)
Llamar startAnimation()
iniciará la animación instantáneamente, ignorando cualquier desplazamiento de tiempo o hora de inicio.
Llamando setAnimation()
tendrá en cuenta las especificaciones de tiempo.