J'ai un ImageView et j'y fais une animation à l'échelle simple. Code très standard.
Mon scale_up.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.2"
android:toYScale="1.2"
android:duration="175"/>
</set>
Mon code d'animation:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
Le problème:
Lorsque l'image est mise à l'échelle, elle n'est pas mise à l'échelle à partir du centre, mais à partir du coin supérieur gauche. En d'autres termes, la version mise à l'échelle de l'image n'a pas le même point que le centre, mais elle a le même point en haut à gauche. Voici un lien qui explique ce que je veux dire. La première image est la façon dont l'animation est mise à l'échelle et la deuxième image est la façon dont je veux qu'elle soit mise à l'échelle. Il devrait garder le même point central. J'ai essayé de mettre en place la gravité sur l'image, sur le conteneur, en alignant à gauche ou à droite, elle est toujours à l'échelle. J'utilise RelativeLayout pour l'écran principal et ImageView est situé dans un autre RelativeLayout, mais j'ai essayé d'autres mises en page, aucun changement.
pivotX
etpivotY
devrait être réglé à la moitié deviewportWidth
etviewportHeight
pour être exact.