Android图像相对中心点缩放动画

新手上路,请多包涵

我有一个 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 许可协议

阅读 1k
2 个回答

忘记额外的翻译,将 android:pivotX , android:pivotY 设置为宽度和高度的一半,它将从图像的中心开始缩放。

原文由 Steven Veltema 发布,翻译遵循 CC BY-SA 3.0 许可协议

50% 是动画视图的中心。

50%p 是父母的中心

<scale
    android:fromXScale="1.0"
    android:toXScale="1.2"
    android:fromYScale="1.0"
    android:toYScale="1.2"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="175"/>

原文由 Jiang Qi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题