ImageViewがあり、それに単純なスケールアニメーションを実行します。非常に標準的なコード。
私の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>
私のアニメーションコード:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
問題:
画像が拡大縮小される場合、画像は中央からではなく、左上隅から拡大縮小されます。つまり、画像の拡大縮小されたバージョンは、中心と同じポイントを持ちませんが、左上のポイントは同じです。これが私が何を意味するかを説明するリンクです。最初の画像はアニメーションのスケーリング方法であり、2番目の画像はアニメーションのスケーリング方法です。中心点を同じに保つ必要があります。画像、コンテナ、左または右に重力を設定してみましたが、常に同じスケールになります。メイン画面にRelativeLayoutを使用していて、ImageViewは別のRelativeLayoutにありますが、他のレイアウトを試しましたが、変更はありません。
pivotX
そして、pivotY
半分に設定する必要がありますviewportWidth
し、viewportHeight
正確には。