Diseño de materiales

Una de las ideas de Android L es que la ventana emergente necesita comenzar su aparición desde el punto donde el usuario pulsó la pantalla.
Por ejemplo, en Chrome Beta (@time * 5):
Chrome Beta

La idea es poder hacer crecer la vista desde cualquier punto de pivote (no sólo la posición predeterminada del botón de desbordamiento) ¿Alguien ha podido hacer esto o no es factible en este momento?

Parece que no hay manera limpia de hacer esto.
La única opción viable que he encontrado es escribir 4 diferentes animaciones xml (para las 4 esquinas, más si quieres permitir el crecimiento centrado), todas las ScaleAnimations de 0 a 1, con diferentes puntos de pivote para cada uno (las 4 esquinas).

A continuación, utilice un DialogFragment :

 @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.getWindow().getAttributes().windowAnimations = R.style.downRightCornerAnimation; //instead of referring to R.*, call a method to get the specific //resource you need for a given start position return dialog; } 

Y un ejemplo de tal animación:

 <?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:fillAfter="false" android:duration="200" android:pivotX = "0%" android:pivotY = "100%"/> 

Es muy difícil de manejar y hacky, pero no creo que el SDK nos da una mejor herramienta para hacer esto (AFAIK no se puede simplemente inyectar un dinámico ObjectAnimator en DialogFragment o PopupWindow )

Bueno, supongo que hacer una animación en una vista general debería funcionar para usted.

Para ello, implemente el siguiente código:

 RecyclerView view = (RecyclerView) findViewById(R.id.your_view); Animation appear = AnimationUtils.loadAnimation(this, R.anim.appear); apear.startAnimation(view); 

Luego, dentro de su carpeta res / anim (cree si no está allí), cree un archivo xml llamado appear.xml y coloque el código siguiente:

 <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:android:fromXScale="0" android:toXScale="1.0" android:fromYScale="0" android:toYScale="1.0" android:duration="1000" /> </set> 

Cambie los valores para que se ajusten a sus propósitos.

Puede obtener más información en la guía de animación de los desarrolladores de Android y en la guía de animación de vista de animación .

  • Cambiar actionOverflowButtonStyle con appcompat v21
  • Cómo establecer el comportamiento de comprobación compartida en todos los grupos en NavigationView?
  • ¿Cómo quitar el color tint de drawables en NavigationView?
  • ¿Cuál es la diferencia entre la barra de acción y la recién introducida barra de herramientas?
  • Error de lanzamiento de NavigationView: No se encontró ningún identificador de recurso para el atributo 'menu' en el paquete
  • Botón de diseño de material con borde
  • ¿Cuáles son las maneras de generar programáticamente conjuntos de colores de Material Design?
  • ¿Cómo puedo eliminar el relleno superior innecesario de la vista de navegación?
  • Efecto de ondulación en la barra de herramientas cortada
  • Estilo AppCompat v21 Dark ToolBar
  • Efecto de ondulación en los elementos desplegables de Spinner de fondo de color (appcompat-v7 V21)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.