web-dev-qa-db-fra.com

Voir l'animation de droite à gauche Android

Je ne parviens pas à mettre l'animation de vue pour les dispositions gonflées. J'ai utilisé l'extrait de code suivant.

pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));

et xml

<set xmlns:Android="http://schemas.Android.com/apk/res/Android"
         Android:shareInterpolator="false">
     <translate Android:fromXDelta="0%" Android:toXDelta="100%"
          Android:fromYDelta="0%" Android:toYDelta="0%"
         Android:duration="700"/>

</set>

Est-ce que quelque chose me manque?

Merci.

16
sd33din90

Voici le code de l'animation glissante pour la vue.

1)inFromRightAnimation

    private Animation inFromRightAnimation() {

        Animation inFromRight = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, +1.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f);
        inFromRight.setDuration(500);
        inFromRight.setInterpolator(new AccelerateInterpolator());
        return inFromRight;
        }

 2)outToLeftAnimation   
    private Animation outToLeftAnimation() {
    Animation outtoLeft = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, -1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    outtoLeft.setDuration(500);
    outtoLeft.setInterpolator(new AccelerateInterpolator());
    return outtoLeft;
    }

3)inFromLeftAnimation

    private Animation inFromLeftAnimation() {
    Animation inFromLeft = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, -1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    inFromLeft.setDuration(500);
    inFromLeft.setInterpolator(new AccelerateInterpolator());
    return inFromLeft;
    }

4)outToRightAnimation

    private Animation outToRightAnimation() {
    Animation outtoRight = new TranslateAnimation(
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, +1.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f,
        Animation.RELATIVE_TO_PARENT, 0.0f);
    outtoRight.setDuration(500);
    outtoRight.setInterpolator(new AccelerateInterpolator());
    return outtoRight;
    }

et maintenant démarrez Animation on view

pageView.startAnimation(inFromRightAnimation());

Merci,

68
sd33din90

Je sais que vous avez déjà accepté la réponse. Mais je pense que cette réponse sera utile pour quelqu'un qui lit ceci. Vous pouvez essayer enlever le .xml de, pageView.startAnimation(AnimationUtils.loadAnimation(this,R.anim.right_to_left_anim.xml));

1
Mr Z

Si vous essayez d'animer la vue lors de sa création, vous devez définir la propriété XML layoutAnimation ou appeler setLayoutAnimation().

Si vous voulez simplement que votre vue ressemble à une vue en mouvement, vous avez besoin d'une TranslateAnimation; voyez cette réponse: https://stackoverflow.com/a/4214490/832776 Si vous souhaitez répéter l'animation, appelez setAnimationListener() et dans onAnimationEnd(), redémarrez l'animation à nouveau.

Si vous essayez de déplacer la vue de façon permanente, voir ceci: http://www.clingmarks.com/how-to-permanently-move-view-with-animation-effect-in-Android/400

1
Oleg Vaskevich