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


Cómo hacer que la actividad de fondo sea más pequeña al abrir el cajón de navegación?

Quiero hacer mi Activity fondo un poco más pequeña al abrir el Navigation Drawer , Simular el efecto que existe en la aplicación Airbnb . Supongo que la mejor explicación sería una captura de pantalla:

Introduzca aquí la descripción de la imagen

  • ¿Cuál es la diferencia entre android: lineSpacingExtra y android: lineSpacingMultiplier?
  • Cómo iniciar un intento de un ResolveInfo
  • Preferencias compartidas de Android con múltiples actividades
  • Obtener la ubicación / posición más precisa? (GPS / Kalman / Android)
  • ¿Cómo recuperar datos de la base de datos de firebase que está teniendo matriz anidada y estructura de objetos?
  • Android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" funciona en nivel de aplicación pero no en el nivel de actividad. ¿Cualquier pista?
  • Pero el punto no es hacer que la vista sea más pequeña, sino hacer que sea una animación sincronizada con la animación Abrir / Cerrar Cajón. Así que si usted comenzó a abrir el cajón y en el centro decidió detenerse y volver, la escala de actividad de fondo se verán afectados en consecuencia.

    ¿Cómo se puede hacer esto utilizando la construcción en DrawerLayout? ¿Hay alguna implementación para esto?

    Gracias por adelantado.

  • Implementación de un selector de archivos en Android y copia del archivo seleccionado en otra ubicación
  • ¿Existe una mejor manera de obtener una referencia a la RecyclerView padre desde el adaptador?
  • Java.lang.OutOfMemoryError: tamaño de mapa de bits supera el presupuesto de VM
  • Clase Android ImageViewer que admite Pinch-Zoom y desplazamiento
  • Android facebook SDK haciendo error java.lang.NoClassDefFoundError
  • Cómo borrar las cookies y caché de la vista web en Android cuando no está en la vista web?
  • 3 Solutions collect form web for “Cómo hacer que la actividad de fondo sea más pequeña al abrir el cajón de navegación?”

    Puede realizar este efecto utilizando el ActionBarDrawerToggle en la biblioteca de soporte v4.

    Todo lo que tiene que hacer es anular el método onDrawerSlide para recuperar el% de apertura del menú del cajón y, a continuación, escalar su FrameLayout donde se coloca el fragmento.

    Ejemplo con código:

    Main_layout.xml

     <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent"/> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp"/> </android.support.v4.widget.DrawerLayout> 

    Ahora en su Actividad que tiene el Cajón:

     public class ConfigurerActivity extends ActionBarActivity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private FrameLayout frame; private float lastScale = 1.0f; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); frame = (FrameLayout) findViewById(R.id.content_frame); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.acc_drawer_open, R.string.acc_drawer_close) { @SuppressLint("NewApi") public void onDrawerSlide(View drawerView, float slideOffset) { float min = 0.9f; float max = 1.0f; float scaleFactor = (max - ((max - min) * slideOffset)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { frame.setScaleX(scaleFactor); frame.setScaleY(scaleFactor); } else { ScaleAnimation anim = new ScaleAnimation(lastScale, scaleFactor, lastScale, scaleFactor, frame.getWidth()/2, frame.getHeight()/2); anim.setDuration(0); anim.setFillAfter(true); frame.startAnimation(anim); lastScale = scaleFactor; } } }; mDrawerLayout.setDrawerListener(mDrawerToggle); // ... more of your code } } 

    Tenga en cuenta que utilizo 2 métodos diferentes para escalar, porque setScaleX / Y no están disponibles en las versiones de PRE – Honeycomb para Android.

    Con esto, usted puede fijar su propio scaleFactor (pienso 0.9f su bastante pequeño) o intentar quizá nuevos efectos (cambie color) basado en el% de apertura del cajón.

    Espero eso ayude.

    Hey usted puede también dar el mejor efecto para la actividad más pequeña. Compruebe ResideMenu

    Demo con la biblioteca.

    Si usted tiene un vistazo a la biblioteca de terceros SlidingMenu , que debe tener todo lo que quieras.

    El bit que le interesa es el behindScrollScale , que dice lo siguiente:

    BehindScrollScale – un flotador que representa la relación entre el desplazamiento de la vista anterior y el desplazamiento de la vista atrás. Si se establece en 0.5f, la vista posterior se desplaza 1px por cada 2px que la vista anterior se desplaza. Si se establece en 1.0f, la vista posterior se desplazará 1px por cada 1px que se desplaza la vista anterior. Y si se establece en 0.0f, la vista trasera nunca se desplazará; Será estático. Éste es diversión para jugar alrededor con. El valor predeterminado es 0.25f.

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