Usando la lista de animación de android

Estoy teniendo un pequeño problema consiguiendo un hilandero animated de la carga para trabajar para una página del chapoteo. No aparece nada cuando intento ejecutar el código siguiente. ¿Alguna sugerencia? Parece que bastantes personas tienen problemas con esto en google, pero no entiendo por qué la mía no funciona. ¡Gracias!

Animationloader.xml

<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/loadingspinner1" android:duration="200" /> <item android:drawable="@drawable/loadingspinner2" android:duration="200" /> <item android:drawable="@drawable/loadingspinner3" android:duration="200" /> <item android:drawable="@drawable/loadingspinner4" android:duration="200" /> <item android:drawable="@drawable/loadingspinner5" android:duration="200" /> <item android:drawable="@drawable/loadingspinner6" android:duration="200" /> <item android:drawable="@drawable/loadingspinner7" android:duration="200" /> <item android:drawable="@drawable/loadingspinner8" android:duration="200" /> <item android:drawable="@drawable/loadingspinner9" android:duration="200" /> <item android:drawable="@drawable/loadingspinner01" android:duration="200" /> <item android:drawable="@drawable/loadingspinner11" android:duration="200" /> <item android:drawable="@drawable/loadingspinner12" android:duration="200" /> </animation-list> 

SplashScreen.java

 package com.secure.inmatecanteen; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.widget.ImageView; public class SplashScreen extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); //Beginning the loading animation as we attempt to verify registration with SIP ImageView ivLoader = (ImageView) findViewById(R.id.IVloadinganimation); ivLoader.setBackgroundResource(R.anim.animationloader); AnimationDrawable frameAnimation = (AnimationDrawable) ivLoader.getBackground(); frameAnimation.start(); } } 

Splashscreen.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="@android:color/white" > <ImageView android:id="@+id/iclogo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/iclogo" android:adjustViewBounds="true" /> <ImageView android:id="@+id/IVloadinganimation" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:adjustViewBounds="true" /> </LinearLayout> 

Resuelto mi propio problema, Usted no puede iniciar animaciones en el oncreate. Tiene que estar en un oyente onclick o dentro de un runnable.

Creo que la opción más elegante y versátil es extender desde la clase ImageView:

 public class Loader extends ImageView { public Loader(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public Loader(Context context, AttributeSet attrs) { super(context, attrs); init(); } public Loader(Context context) { super(context); init(); } private void init() { setBackgroundResource(R.drawable.loader); final AnimationDrawable frameAnimation = (AnimationDrawable) getBackground(); post(new Runnable(){ public void run(){ frameAnimation.start(); } }); } } 

El cargador.xml ubicado en la carpeta dibujable:

 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/loader_1" android:duration="50" /> <item android:drawable="@drawable/loader_2" android:duration="50" /> <item android:drawable="@drawable/loader_3" android:duration="50" /> <item android:drawable="@drawable/loader_4" android:duration="50" /> ..... </animation-list> 

Ahora incluya en sus puntos de vista algo tan simple como esto:

 <com.yourpackage.Loader android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Puede reproducir / iniciar animation desde onWindowFocusChanged(boolean hasFocus) .

Dentro de este controlador la animación no está totalmente adjunta a la ventana, por lo que las animaciones no se pueden iniciar; En su lugar, esto suele hacerse como resultado de la acción del usuario (como una pulsación de botón) o dentro del onWindowFocusChangedhandler .

Referirse: desarrollo profesional de aplicaciones android 4

No establezca recurso de imagen en código xml.

Mi XML es:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:gravity="center" android:keepScreenOn="true" android:id="@+id/splashLayout" android:background="@color/colorPrimary" android:layout_height="match_parent"> <ImageView android:layout_width="230dp" android:layout_height="230dp" android:id="@+id/iv_splash" android:layout_marginTop="-80dp" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout> 

En la actividad que hago

 public class SplashActivity extends Activity { ImageView iv_splash; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); iv_splash=(ImageView)findViewById(R.id.iv_splash); iv_splash.setBackgroundResource(R.drawable.splash); final AnimationDrawable progressAnimation =(AnimationDrawable)iv_splash.getBackground(); progressAnimation.start(); } } 

Archivo extraíble

 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/logo" android:duration="400"/> <item android:drawable="@drawable/logo1" android:duration="400"/> </animation-list> 

Está funcionando bien

  • Creación de animación de inicio de sesión como facebook android
  • Aplicación de animaciones al cambiar la visibilidad de una vista
  • Animación de la ventana de Android junto con la vista
  • Android - ImageView bottomCrop en lugar de centerCrop
  • Creación de animación en la aplicación para Android
  • Android: cómo animar una transición de actividad cuando se pulsa el botón de retroceso predeterminado
  • Android MediaPlayer sincroniza con animación como iOS AVPlayer y capa AVSynchronized
  • ¿Cómo hago algo cuando termina una animación?
  • Calidad de la animación de rotación de Android
  • ¿Cómo animar la posición de desplazamiento? ¿Cómo desplazarse sin problemas?
  • Animar agregar / quitar elementos de ListView con CursorAdapter es posible?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.