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.
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.
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>
Je pense que vous devez
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