我正在尝试将视图缩放到一定的大小,但无法理解旋转的工作原理。
假设我只想向上缩放视图。 “pivotY”应该有什么价值?在XML中,它是一个百分比。如何以编程方式应用枢轴点?
示例:
ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", scaleSize);
ObjectAnimator pivotY = ObjectAnimator.ofFloat(view, "pivotY", pivotPoint);
AnimatorSet set = new AnimatorSet();
set.PlayTogether(scaleY, pivotY);
答案 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