Fade In Android Launch Actividad
Busco ayuda que se desvanezca en mi actividad de lanzamiento. He encontrado un montón de mensajes sobre el desvanecimiento entre las actividades que se están lanzando con intenciones, pero nada sobre cómo se desvanecen en su actividad de lanzamiento. He intentado overridePendingTransition(int animationIn, int animationOut)
pero eso no ha funcionado para mí. Lo he colocado en el onCreate(..)
y el método onStart(..)
pero no han tenido éxito. Cualquier ayuda o dirección sería apreciada.
Gracias.
- Mejor manera de lograr una animación fluida en Android
- FlipAnimation causando problemas en 4.4.3
- Android - Control de animación de viewflipper con el dedo / táctil?
- Cómo rotar la imagen en particular entre varias imágenes dibujadas en lienzo en android?
- La animación de la vista no cambia el área táctil
- Animación de escala de Android en la vista
- Cómo controlar páginas de páginas de vista desde otra página
- Animación de botón de acción flotante de Android
- Replicar la animación de búsqueda de Google Now
- Mostrar y ocultar una vista con una animación de diapositiva arriba / abajo
- Fragmento que reemplaza la edición de animación
- Animación del tamaño de texto de TextView
- Deslice la animación expandida en android
He inventado algo para ti, excluye la barra de acción sin embargo. He modificado la demostración hola mundo un poco para un ejemplo simple:
-
Establecer un tema translúcido a su actividad de lanzador, lo llamé Translucy:
/res/values/style.xml
<style name="Theme.Translucy" parent="android:style/Theme.Translucent"> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> </style>
AndroidManifest.xml:
<activity android:name=".MainActivity" android:theme="@style/Theme.Translucy" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
-
Cree un id para su diseño xml principal, lo llamé rlayout_main y lo configuro como invisible:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:id="@+id/rlayout_main" android:visibility="invisible" android:background="@android:color/holo_blue_dark" tools:context=".MainActivity"> <TextView android:textSize="50sp" android:text="@string/hello_world" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>
-
Cree una AlphaAnimation y anime su diseño padre principal:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout relativeLayoutMain = (RelativeLayout) findViewById(R.id.rlayout_main); AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1); alphaAnimation.setDuration(3000); alphaAnimation.setFillAfter(true); relativeLayoutMain.startAnimation(alphaAnimation); } }
(EDIT): Para guardar un pequeño código también puede usar ViewPropertyAnimator para animar su diseño en lugar de crear una AlphaAnimation:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout relativeLayoutMain = (RelativeLayout) findViewById(R.id.rlayout_main); relativeLayoutMain.animate().alpha(1).setDuration(3000); } }
Espero que esto ayude, como dije que no es perfecto porque excluye la ActionBar, pero podría ser algo para empezar.
No lo he intentado sino sólo un truco;
Crea una actividad vacía y haz que sea lanzador. En el método onCreate
, inicie una intención de esa actividad, que es la actividad principal que desea atenuar. Ahora, puede aplicar cualquier animación de la primera actividad vacía. Y la primera actividad no afectará nada ya que inicia la segunda actividad (principal) siempre y cuando se cree.