Cómo crear movimiento / cambiar el tamaño de las animaciones en Android?
¿Alguien sabe acerca de las animaciones de Android? Quiero crear algo como lo siguiente:
- Tengo una imagen grande en el centro de la pantalla de mi dispositivo;
- Esta imagen se vuelve pequeña (por animación) y va a la esquina de la pantalla de mi dispositivo;
Su algo así en esta secuencia de bellow:
- ¿Por qué se cortan las animaciones de Vista a veces?
- Fab.show () no animado por primera vez después de inicializar nueva actividad
- Animar elementos recién agregados en ListView
- Android ViewFlipper que sigue los gestos de inmediato
- Cómo implementar Android listview apertura gesto
Cualquier sugerencia sería muy apreciada! ¡Gracias por adelantado!
- Animación de Android Alpha
- Cómo hacer la animación de marco suave en Android?
- Android cómo hacer animated setSelection () para listfragment?
- Android NYTimes Swipe Animation / Gesto
- Animación de visor de Android
- Cómo animar una versión 'clonada', duplicada de Android existente View
- Android: Qualcomm QCAR (Vuforia) SDK con min3D Framework (u otro 3D-Model / Animation Loader / Renderer)
- Cómo construir animador de diapositivas arriba / abajo en XML para android?
Utilice ViewPropertyAnimator
, con métodos como scaleXBy()
y translateYBy()
. Obtiene un ViewPropertyAnimator
llamando a animate()
en una View
, en el nivel de API 11+. Si usted está apoyando dispositivos más viejos, NineOldAndroids ofrece un backport casi-workalike.
También puede leer:
Tengo una clase con la rotación y el movimiento simultáneos. Es costoso, pero funciona en todas las versiones API.
public class ResizeMoveAnimation extends Animation { View view; int fromLeft; int fromTop; int fromRight; int fromBottom; int toLeft; int toTop; int toRight; int toBottom; public ResizeMoveAnimation(View v, int toLeft, int toTop, int toRight, int toBottom) { this.view = v; this.toLeft = toLeft; this.toTop = toTop; this.toRight = toRight; this.toBottom = toBottom; fromLeft = v.getLeft(); fromTop = v.getTop(); fromRight = v.getRight(); fromBottom = v.getBottom(); setDuration(500); } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { float left = fromLeft + (toLeft - fromLeft) * interpolatedTime; float top = fromTop + (toTop - fromTop) * interpolatedTime; float right = fromRight + (toRight - fromRight) * interpolatedTime; float bottom = fromBottom + (toBottom - fromBottom) * interpolatedTime; RelativeLayout.LayoutParams p = (LayoutParams) view.getLayoutParams(); p.leftMargin = (int) left; p.topMargin = (int) top; p.width = (int) ((right - left) + 1); p.height = (int) ((bottom - top) + 1); view.requestLayout(); } }