我有一个 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 中,但我尝试了其他布局,没有任何变化。
原文由 Tomislav Markovski 发布,翻译遵循 CC BY-SA 4.0 许可协议
忘记额外的翻译,将
android:pivotX
,android:pivotY
设置为宽度和高度的一半,它将从图像的中心开始缩放。