2011-12-02 18 views

Respuesta

8

¿Qué versión de Android usas? Desde API nivel 11 puede usar Animators personalizado que puede implementar fácilmente su traducción de curva.

Si utiliza una versión más adelante que hay que yo sepa sólo la posibilidad de concatenar manualmente múltiples traducciones lineales usando la animación traducir y el establecimiento de los oyentes de animación

EDIT:

Ejemplo:

View view; 
animator = ValueAnimator.ofFloat(0, 1); // values from 0 to 1 
animator.setDuration(5000); // 5 seconds duration from 0 to 1 
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() 
{ 
    @Override 
    public void onAnimationUpdate(ValueAnimator animation) { 
     float value = ((Float) (animation.getAnimatedValue())) 
        .floatValue(); 
     // Set translation of your view here. Position can be calculated 
     // out of value. This code should move the view in a half circle. 
     view.setTranslationX((float)(200.0 * Math.sin(value*Math.PI))); 
     view.setTranslationY((float)(200.0 * Math.cos(value*Math.PI))); 
    } 
}); 

Espero que funcione. Simplemente copié & pegué (y acorté y cambié) el código de una de mis aplicaciones.

+0

Sírvanse proporcionar un código de ejemplo para la preparación de la curva de traducción en Android 3.0. – user884126

+0

No hay. Espero que funcione –

+0

@ js- señor, ¿puedo implementar una animación curva para los niveles de API por debajo de 11 usando la biblioteca nueve-viejo-android? –

-1

Considere el siguiente enlace web. Es un juego en C. Necesita aislar la función projectile() e intentar comprender las variables definidas dentro de ella. Una vez que lo consigue, intente implementarlo en su propio código.

http://www.daniweb.com/software-development/c/code/216266

+2

Si bien esto puede responder teóricamente a la pregunta, sería preferible (http://meta.stackexchange.com/q/8259) que edite la respuesta para incluir las partes esenciales de la solución y proporcione el enlace como referencia. –

3

Éstos son los animadores que utilizo:

Propósito: mover Ver "vista" a lo largo de Ruta "camino"

v21 Android +:

// Animates view changing x, y along path co-ordinates 
ValueAnimator pathAnimator = ObjectAnimator.ofFloat(view, "x", "y", path) 

v11 Android +:

// Animates a float value from 0 to 1 
ValueAnimator pathAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); 

// This listener onAnimationUpdate will be called during every step in the animation 
// Gets called every millisecond in my observation 
pathAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 

float[] point = new float[2]; 

@Override 
    public void onAnimationUpdate(ValueAnimator animation) { 
     // Gets the animated float fraction 
     float val = animation.getAnimatedFraction(); 

     // Gets the point at the fractional path length 
     PathMeasure pathMeasure = new PathMeasure(path, true); 
     pathMeasure.getPosTan(pathMeasure.getLength() * val, point, null); 

     // Sets view location to the above point 
     view.setX(point[0]); 
     view.setY(point[1]); 
    } 
}); 

similares a: Android, move bitmap along a path?

+1

Es útil dedicar más tiempo a explicar cómo funciona su respuesta, para que el solicitante pueda seguir su código más fácilmente. – SuperBiasedMan

+1

@SuperBiasedMan ¡Gracias por los comentarios! Han agregado una explicación en los comentarios. –

+0

Tenía que hacer: 'pathMeasure.getLength()/2' porque la vista seguía volviendo a su posición original. – Rick