Traducir y escalar la animación en paralelo
Quiero mover alguna vista desde cualquier posición al centro de la pantalla y escalar en paralelo. Si eso es demasiado complicado, traducir y escalar secuencialmente también es aceptable. Pero ni yo podría lograrlo. Creo que es el problema con el punto de pivote. Pero lo siento no encontré solución. Por favor ayuda. Tal vez sea fácil para aquellos que desarrollan juegos, sobre los cuales no hice nada.
A continuación se muestra mi código:
- OnScale y Canvas - ¿cómo ajustar el punto de origen después de ampliar la imagen?
- Android ViewPropertyAnimator no se escala al mismo tiempo
- ¿Por qué mi escala vectorial no es como se espera?
- Animación de escala de imagen de Android relativa al punto central
- Android ViewGroup.setScaleX () hace que la vista se recorte
private void moveViewToScreenCenter( final View view ){ DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics( dm ); int statusBarOffset = dm.heightPixels - rootLayout.getMeasuredHeight(); int originalPos[] = new int[2]; view.getLocationOnScreen( originalPos ); int xDelta = (dm.widthPixels - view.getMeasuredWidth())/2 - originalPos[0]; int yDelta = (dm.heightPixels - view.getMeasuredHeight())/2 + statusBarOffset - originalPos[1]; AnimationSet animSet = new AnimationSet(true); animSet.setFillAfter(true); animSet.setDuration(1000); animSet.setInterpolator(new BounceInterpolator()); TranslateAnimation translate = new TranslateAnimation( 0, xDelta , 0, yDelta); animSet.addAnimation(translate); ScaleAnimation scale = new ScaleAnimation(1f, 2f, 1f, 2f, ScaleAnimation.RELATIVE_TO_PARENT, .5f, ScaleAnimation.RELATIVE_TO_PARENT, .5f); animSet.addAnimation(scale); view.startAnimation(animSet); }
Actualización: código anterior puede manejar imageview de la región superior izquierda, los de la región inferior derecha ir en diagonal a través de la pantalla y desaparecer.
- Android ImageView escalado confict
- La barra de direcciones del navegador Mobile Webkit cambia $ (ventana) .height (); Haciendo el fondo-tamaño: la cubierta rescale cada vez
- ¿Cómo puedo configurar mi aplicación Phonegap para escalar su visor de acuerdo con la resolución del teléfono?
- Android ImageView debe ser más grande que la pantalla
- Vídeo de escala de matriz en TextureView Android
- Android VideoView cómo escalar como tipo de escala ImageView fitXY?
- Android ViewPager Con animación diferente como acercar, atenuarse, etc
- Cómo configurar el zoom / ancho inicial para una vista web
Después de unas cuantas pruebas sin esperanza, lo hice, lo que es demasiado sorprendente.
A continuación se muestra el código, que se puede utilizar para mover cualquier vista en un diseño al centro de ese diseño:
private void moveViewToScreenCenter( final View view ){ DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics( dm ); int originalPos[] = new int[2]; view.getLocationOnScreen( originalPos ); int xDelta = (dm.widthPixels - view.getMeasuredWidth() - originalPos[0])/2; int yDelta = (dm.heightPixels - view.getMeasuredHeight() - originalPos[1])/2; AnimationSet animSet = new AnimationSet(true); animSet.setFillAfter(true); animSet.setDuration(1000); animSet.setInterpolator(new BounceInterpolator()); TranslateAnimation translate = new TranslateAnimation( 0, xDelta , 0, yDelta); animSet.addAnimation(translate); ScaleAnimation scale = new ScaleAnimation(1f, 2f, 1f, 2f, ScaleAnimation.RELATIVE_TO_PARENT, .5f, ScaleAnimation.RELATIVE_TO_PARENT, .5f); animSet.addAnimation(scale); view.startAnimation(animSet); }
- Linphone para Android no funciona / faltan bibliotecas
- Incluye Ruboto-Core con la aplicación de Android instalada