Eu tenho um ImageView e faço uma animação de escala simples para ele. Código muito padrão.
Minha escala_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>
Meu código de animação:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
O problema:
Quando a imagem é dimensionada, ela não é dimensionada do centro, mas sim do canto superior esquerdo. Em outras palavras, a versão dimensionada da imagem não tem o mesmo ponto do centro, mas tem o mesmo ponto superior esquerdo. Aqui está um link que explica o que quero dizer. A primeira imagem é como a animação é dimensionada e a segunda imagem é como eu quero que ela seja dimensionada. Deve manter o ponto central igual. Tentei configurar a gravidade na imagem, no container, alinhando à esquerda ou à direita, sempre dimensiona da mesma forma. Estou usando RelativeLayout para a tela principal e ImageView está localizado em outro RelativeLayout, mas tentei outros layouts, sem alteração.
pivotX
epivotY
deve ser definido como metadeviewportWidth
eviewportHeight
para ser exato.