Android cambia el diseño dinámicamente

Tengo la situación donde quiero cambiar el diseño de la actividad después de 3 segundos. ¿Puedo hacer eso? Por ejemplo, la aplicación comienza con una pantalla de presentación que se ejecutará durante 3 segundos y, a continuación, cambiará automáticamente el diseño a la primera presentación de la aplicación. Esto debe suceder en la misma actividad, ¿alguna idea?

Gracias

Hice esto usando solamente una disposición del xml. Acabo de poner un RelativeLayout extra en él que representa mi pantalla de introducción, a continuación, utilizar una animación fadeOut en él y luego llamar a .setVisibility (View.GONE).

Esto es parte de mi archivo de diseño main.xml

<RelativeLayout android:id="@+id/introLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF" > <ImageView android:id="@+id/logoImg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@drawable/logo"> </ImageView> </RelativeLayout> 

Entonces dentro de mi actividad tengo esto:

 introLayout = (RelativeLayout) findViewById(R.id.introLayout); Animation fadeOutAnim = AnimationUtils.loadAnimation(MyActivity.this, R.anim.fadeout); introLayout.startAnimation(fadeOutAnim); introLayout.setVisibility(View.GONE); 

Usted podría hacer esto funcionar después de 3 segundos poniendo el startAnimation (), y el setVisibility dentro de un runnable y usando el postDelayed () como markus mencionado. Considera hacer algo de trabajo mientras este diseño de introducción está en la pantalla, así que no es sólo un retraso de 3 segundos para el usuario. Tal vez compruebe si la versión en ejecución de la aplicación es la versión actual o no.

EDIT: Deberá agregar el archivo fadout.xml a /res/anim/ (cree el directorio anim si no existe). Aquí hay un ejemplo.

Fadeout.xml

 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="700" android:fillAfter="true"/> 

Simplemente utilice ViewSwitcher, utilizando este uno puede cambiar entre cualquier número de diseños dentro de la aplicación sin tener que hacer ningún setContentView.

Tal vez usted podría usar una llamada postDelayed () – para ejecutar un runnable que cargará un nuevo archivo xml llamando a setContentView (R.xml.anotherxml).

Esto me deja añadir a la publicación de adnorid, que ViewSwitcher en sí sólo es capaz de cambiar entre 2 diseños / vistas. Esto es simplemente porque es hardcoded a sólo 2 diseños / vistas sin un significado más profundo, por lo que sé. Así que construí mi propio MultipleViewSwitcher aka MVS, basado en el ViewSwitcher.java original de origen android. Los únicos cambios que tuvieron que hacerse son:

  1. Proporcionar al MVS su propio
    • Boolean mFirstTime y
    • Int mWhichChild
  2. Corregir codificado en el manejo dinámico de un número arbitrario de vistas en funciones
    • AddView (…)
    • GetNextView ()
    • Reiniciar()

Todo esto puede hacerse en MultipleViewSwitcher.java solo y funciona como un encanto.

Me encontré con un montón de cosas como esa donde las fuentes de Android se podría hacer mucho más poderoso con, muchas veces, casi-no-brainer-edits. Me gustaría saber por qué es eso, pero eso no es para este hilo aquí.

¡aclamaciones!

  • Cómo llamar a recreate ()?
  • Inicie otra actividad haciendo clic en un botón
  • Android: borrar historial al navegar entre Actividades
  • Loader no se inicia después de llamar a initLoader ()?
  • Tener la aplicación ejecutándose sobre otra aplicación
  • Android Show Soft Keyboard cuando se inicia la primera actividad?
  • ¿Cómo llamar a los métodos de un servicio de la actividad?
  • Actividad, AppCompatActivity, FragmentActivity y ActionBarActivity: ¿Cuándo utilizar qué?
  • ¿Por qué tengo un accidente al salir de mi actividad?
  • Datos de paso de Android entre Fragmentos
  • Patrón de comandos para pasar los métodos de actividad de la aplicación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.