我有一个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);
问题:
当图像缩放时,它不是从中心缩放,而是从左上角缩放。换句话说,图像的缩放版本与中心没有相同的点,但是其左上角具有相同的点。这里的链接解释了我的意思。第一张图像是动画的缩放比例,第二张图像是我希望的缩放比例。它应保持中心点相同。我尝试在容器上的图像上设置重力,将其向左或向右对齐,它的缩放比例始终相同。我在主屏幕上使用了RelativeLayout,ImageView位于另一个RelativeLayout中,但是我尝试了其他布局,没有任何变化。
pivotX
并pivotY
应设置为一半,viewportWidth
并且viewportHeight
要准确。