web-dev-qa-db-fra.com

zoomer et dézoomer l'animation dans android

J'ai un code d'animation de zoom avant et de zoom arrière entre deux activités, mais je veux quelque chose de différent. J'ai cinq boutons sur ma première activité si je clique sur le premier bouton, puis le zoom avant commence uniquement à partir de la position du premier bouton au lieu de zoomer depuis le centre. Aidez-moi, s'il vous plaît.

EDIT: Le zoom doit commencer à partir du bouton sur lequel j'ai cliqué en tant que centre.

22
jagdish

Vous pouvez utiliser cette méthode après avoir exécuté la commande pour démarrer votre nouvelle activité,

startActivity(intent);
overridePendingTransition(animation_in_goes_here,animation_out_goes_here);

Ensuite, vous pouvez remplacer vos animations ci-dessus, en remplaçant le animation_in_goes_here avec la ressource d'animation dont vous avez besoin pour l'activité que vous venez de démarrer et remplaçant animation_out_goes_here avec la ressource d'animation de l'activité que vous quittez. Cela vous donnera les effets de commutation.

zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:fillAfter="true">
    <scale
    Android:duration="1000"
    Android:fromXScale="1"
    Android:fromYScale="1"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:toXScale="3"
    Android:toYScale="3"/>
 </set>

zoom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:fillAfter="true">
    <scale
    Android:duration="1000"
    Android:fromXScale="1.0"
    Android:fromYScale="1.0"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:toXScale="0.5"
    Android:toYScale="0.5"/>
</set>

J'espère que cela a aidé à répondre à votre question.

37
kabuto178

Agrandir

<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:duration="1000"
    Android:fromXScale="0"
    Android:fromYScale="0"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:toXScale="0.5"
    Android:toYScale="0.5">

</scale>

Dézoomer

<scale xmlns:Android="http://schemas.Android.com/apk/res/Android"

    Android:duration="1000"
    Android:fromXScale="2.1"
    Android:fromYScale="2.1"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:startOffset="3000"
    Android:toXScale="0"
    Android:toYScale="0">

</scale>
3
bhoomika

Je pense que vous devez

  • Définir des animations "in" et "out"
  • Créer un dossier res/anim
  • Placer les descriptions d'animation dans le dossier res/anim

    object.setInAnimation (AnimationUtils.loadAnimation (this, R.anim.zoom_enter)); object.setOutAnimation (AnimationUtils.loadAnimation (this, R.anim.zoom_exit));

Vous pouvez utiliser Android exemples d'animation sdk fournis par google sous licence Apache 2.0

Ou référez-vous à cela qui utilise un zoom basé sur une mise à l'échelle qui est plus facile que l'ancien

http://developer.Android.com/training/animation/zoom.html

2
Yash Krishnan