Animaciones en Android

Animaciones de vistas en Android

Se consideran animaciones a cualquier sensación de movimiento que se realiza de una imagen. Android dispone del paquete Animation que contiene varias clases diseñadas para crear animaciones.

Las animaciones pueden llegar a exigir gran cantidad de recursos de del procesador, por tanto, se deben tratar con precaución ya que pueden ralentizar excesivamente la aplicación. Android permite distintas formas de desarrollar estas animaciones pero es recomendable el desarrollo de animaciones en vistas mediante xml que permite ahorrar cierta cantidad de recursos.

A continuación algunos ejemplos de las animaciones más básicas, compuestas por una imagen que realiza la animación y un botón permite el comienzo. Es recomendable ordenar las animaciones en un directorio nombrado anim.

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:orientation="vertical">
  6. <ImageView
  7. android:id="@+id/imagen"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:src="@drawable/ic_launcher_foreground"
  11. android:layout_gravity="center_horizontal"
  12. android:background="@color/colorPrimary"
  13. ></ImageView>
  14. <Button
  15. android:id="@+id/boton"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:text="Iniciar"
  19. android:layout_gravity="center_horizontal"
  20. />
  21. </LinearLayout>

Rotación

rotacion.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rotate xmlns:android="//schemas.android.com/apk/res/android"
  3. android:fromDegrees="0"
  4. android:toDegrees="360"
  5. android:duration="2500"
  6. >
  7. </rotate>

MainActivity.java

  1. package xip.midominio.com.rotacion;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.animation.Animation;
  6. import android.view.animation.AnimationUtils;
  7. import android.widget.Button;
  8. import android.widget.ImageView;
  9. import android.view.View.OnClickListener;
  10. public class MainActivity extends AppCompatActivity implements OnClickListener {
  11. ImageView imagen;
  12. Button boton;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. imagen=(ImageView)findViewById(R.id.imagen);
  18. boton= (Button)findViewById(R.id.boton);
  19. boton.setOnClickListener(this);
  20. }
  21. public void onClick(View view) {
  22. switch(view.getId()){
  23. case R.id.boton:
  24. Animation rotacion = AnimationUtils.loadAnimation(this,R.anim.rotacion);
  25. rotacion.reset();
  26. imagen.startAnimation(rotacion);
  27. break;
  28. default:
  29. break;
  30. }
  31. }
  32. }

Transición

transicion.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <translate xmlns:android="//schemas.android.com/apk/res/android"
  3. android:fromYDelta="0"
  4. android:toYDelta="200"
  5. android:duration="2000"
  6. >

MainActivity.java

  1. package xip.midominio.com.transicion;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.animation.Animation;
  6. import android.view.animation.AnimationUtils;
  7. import android.widget.Button;
  8. import android.widget.ImageView;
  9. import android.view.View.OnClickListener;
  10. public class MainActivity extends AppCompatActivity implements OnClickListener {
  11. ImageView imagen;
  12. Button boton;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. imagen = (ImageView) findViewById(R.id.imagen);
  18. boton = (Button) findViewById(R.id.boton);
  19. boton.setOnClickListener(this);
  20. }
  21. public void onClick(View view){
  22. switch(view.getId()){
  23. case R.id.boton:
  24. Animation translate= AnimationUtils.loadAnimation(this,R.anim.transicion);
  25. translate.reset();
  26. imagen.startAnimation(translate);
  27. break;
  28. default:
  29. break;
  30. }
  31. }
  32. }

Mostrar/Ocultar

alpha.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <alpha xmlns:android="//schemas.android.com/apk/res/android"
  3. android:fromAlpha="0.0"
  4. android:toAlpha="1.0"
  5. android:duration="2000"
  6. android:repeatCount="infinite"
  7. >
  8. </alpha>

MainActivity.java

  1. package xip.midominio.com.mostrar_ocultar;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.animation.Animation;
  6. import android.view.animation.AnimationUtils;
  7. import android.widget.Button;
  8. import android.widget.ImageView;
  9. import android.view.View.OnClickListener;
  10. public class MainActivity extends AppCompatActivity implements OnClickListener {
  11. ImageView imagen;
  12. Button boton;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.activity_main);
  17. imagen = (ImageView) findViewById(R.id.imagen);
  18. boton = (Button) findViewById(R.id.boton);
  19. boton.setOnClickListener(this);
  20. }
  21. public void onClick(View view){
  22. switch(view.getId()){
  23. case R.id.boton:
  24. Animation translate= AnimationUtils.loadAnimation(this,R.anim.alpha);
  25. translate.reset();
  26. imagen.startAnimation(translate);
  27. break;
  28. default:
  29. break;
  30. }
  31. }
  32. }


Comentarios: 0

Para poder comentar es necesario iniciar sesión



Este dominio utiliza cookies de terceros para crear estadísticas y publicidad personalizada. Si continúa navegando está aceptando su uso