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
- ¿Cómo cierro Google Navigation de forma programática?
- ¿Cuál es el uso de la actividad de preferencia en android?
- Paquetes separados de Android
- Activity.setResult (int) y el ciclo de vida de la actividad
- Actualizar actividad si se cambia la preferencia
- Android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" funciona en nivel de aplicación pero no en el nivel de actividad. ¿Cualquier pista?
- Iniciar de forma programática la actividad "Agregar una cuenta de Google" en Android
- ¿Cómo puedo manejar devoluciones de llamada para varios botones?
- Cómo cambiar el título de actividad en Android?
- Android: Eliminar actividad de nuevo Arrow
- ¿Cómo puedo ocultar una actividad?
- Eliminar la antigua instancia de actividad al iniciar una nueva actividad
- Datos que pasan a otra aplicación en Android
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:
- Proporcionar al MVS su propio
- Boolean mFirstTime y
- Int mWhichChild
- 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 guardar el estado del fragmento teniendo listview
- Cómo restringir datos de proveedor de contenido entre aplicaciones