Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo lograr la siguiente animación en el diseño de material android?

Introduzca aquí la descripción de la imagen

Quisiera lograr esta animación en android.Appreciate cualquier ayuda.

One Solution collect form web for “¿Cómo lograr la siguiente animación en el diseño de material android?”

No he probado esto, pero debería funcionar.

Agregue esta dependencia a su archivo gradle de aplicaciones: compile 'com.github.ozodrukh:CircularReveal:1.1.1'

Declare estas variables al inicio de su actividad:

 LinearLayout mRevealView; boolean hidden = true; 

Añada esto en su método onCreate:

 mRevealView = (LinearLayout) findViewById(R.id.reveal_items); mRevealView.setVisibility(View.INVISIBLE); 

En el método onClick de su FAB, agregue esto:

 int cx = (mRevealView.getLeft() + mRevealView.getRight()); int cy = mRevealView.getTop(); int radius = Math.max(mRevealView.getWidth(), mRevealView.getHeight()); //Below Android LOLIPOP Version if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { SupportAnimator animator = ViewAnimationUtils.createCircularReveal(mRevealView, cx, cy, 0, radius); animator.setInterpolator(new AccelerateDecelerateInterpolator()); animator.setDuration(700); SupportAnimator animator_reverse = animator.reverse(); if (hidden) { mRevealView.setVisibility(View.VISIBLE); animator.start(); hidden = false; } else { animator_reverse.addListener(new SupportAnimator.AnimatorListener() { @Override public void onAnimationStart() { } @Override public void onAnimationEnd() { mRevealView.setVisibility(View.INVISIBLE); hidden = true; } @Override public void onAnimationCancel() { } @Override public void onAnimationRepeat() { } }); animator_reverse.start(); } } // Android LOLIPOP And ABOVE Version else { if (hidden) { Animator anim = android.view.ViewAnimationUtils. createCircularReveal(mRevealView, cx, cy, 0, radius); mRevealView.setVisibility(View.VISIBLE); anim.start(); hidden = false; } else { Animator anim = android.view.ViewAnimationUtils. createCircularReveal(mRevealView, cx, cy, radius, 0); anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); mRevealView.setVisibility(View.INVISIBLE); hidden = true; } }); anim.start(); } } 

Agrega este método a tu actividad:

 private void hideRevealView() { if (mRevealView.getVisibility() == View.VISIBLE) { mRevealView.setVisibility(View.INVISIBLE); hidden = true; } } 

Cree un nuevo diseño de xml para el revelar, llámelo revelar_layout.xml y agregue esto:

 <io.codetail.widget.RevealFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="?attr/actionBarSize"> //You can include whatever layout you want here <include layout="@layout/layout_you_want_to_show" /> </io.codetail.widget.RevealFrameLayout> 

Para que esto funcione, es imprescindible que agregue esto al final del diseño de sus actividades:

 <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <include layout="@layout/reveal_layout" /> </FrameLayout> 

Espero que esto ayude.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.