2012-02-06 14 views
6

Estoy tratando de animar los elementos de la interfaz de usuario. Me gustaría mover un editText y un botón de la mitad a la parte superior de la pantalla y mostrar los resultados de una llamada http debajo de ellos en una tabla. Sería genial si alguien pudiera orientarme en la dirección correcta, en este momento no sé si debería usar Java o XML para esto.Android ui elemento animación

Gracias de antemano.

marco

Respuesta

8

Uso de traducción para lograr esto, esto funciona como:

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) 

Así que hay que escribir el código para la vista que se mueve en la dirección del eje y, de la siguiente manera:

mAnimation = new TranslateAnimation(0, 0, 0, 599); 
    mAnimation.setDuration(10000); 
    mAnimation.setFillAfter(true); 
    mAnimation.setRepeatCount(-1); 
    mAnimation.setRepeatMode(Animation.REVERSE); 
    view.setAnimation(mAnimation); 

aquí Ver puede ser cualquier cosa, textview, imageView etc.

+0

Gracias, esto era exactamente lo que estaba buscando. – Meatje

1

respuesta aceptada provocó un error dentro de mi código, fragmento de código a continuación casi idéntico a la respuesta aceptada & wo sin causar errores, para deslizar un objeto fuera de la pantalla. necesitaba gestos vinculados a keyPad para también 'deslizarme', y cambié de TranslateAnimation a ObjectAnimator (segundo bloque de código a continuación).

final LinearLayout keyPad = (LinearLayout)findViewById(R.id.keyPad); 

moveKeyPadUp(keyPad); 

private void moveKeyPadUp(LinearLayout keyPad){ 
     Animation animation = new TranslateAnimation(0,0,0,-500); 
     animation.setDuration(1000); 
     animation.setFillAfter(true); 
     keyPad.startAnimation(animation); 
} 

private void moveKeyPadUpdated(LinearLayout keyPad){ 
     ObjectAnimator mover = ObjectAnimator.ofFloat(keyPad,"translationY",0,-500); 
     mover.setDuration(300); 
     mover.start(); 
}