Android为缩放动画设置轴心点

时间:2013-06-10 20:06:44

标签: android animation pivot

我正在尝试将视图缩放到一定的大小,但无法理解旋转的工作原理。

假设我只想向上缩放视图。 “pivotY”应该有什么价值?在XML中,它是一个百分比。如何以编程方式应用枢轴点?

示例:

ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", scaleSize);
ObjectAnimator pivotY = ObjectAnimator.ofFloat(view, "pivotY", pivotPoint);

AnimatorSet set = new AnimatorSet();
set.PlayTogether(scaleY, pivotY);

3 个答案:

答案 0 :(得分:55)

实际上非常简单。

如果你想向上扩展,一个明确的选项是:

 view.setPivotY(100);

向下:

 view.setPivotY(0);

然后动画。

答案 1 :(得分:9)

使用:

view.setPivotY(view.getMeasuredHeight());

如果您需要从底部为对象设置动画。

答案 2 :(得分:0)

您的枢轴点将您的视图作为参考。因此,轴心点设置为 0,0 意味着它与视图的左上角相匹配。

所以这个动画:

ObjectAnimator.ofFloat(view, "scaleY", 1f, 0f)

会受到pivotY

的影响
view.pivotY = 0 // will shrink the view towards the view top
view.pivotY = view.measuredHeight.toFloat() // will shrink the view towards the view bottom
view.resetPivot() // will shrink the view towards the center

同理,这个动画:

ObjectAnimator.ofFloat(view, "scaleX", 1f, 0f)

会受到pivotX

的影响
view.pivotX = 0 // will shrink the view towards the view left
view.pivotX = view.measuredHeight.toFloat() // will shrink the view towards the view right
view.resetPivot() // will shrink the view towards the center