【问题标题】:Android setting pivot point for scale animationAndroid设置缩放动画的枢轴点
【发布时间】:2013-06-06 14:00:56
【问题描述】:

我正在尝试将视图缩放到特定大小,但不太了解旋转的工作原理。

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

例子:

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

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

【问题讨论】:

    标签: android animation pivot


    【解决方案1】:

    其实很简单。

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

     view.setPivotY(100);
    

    以下:

     view.setPivotY(0);
    

    然后制作动画。

    【讨论】:

    • 没那么简单。首先,设置此属性会禁用此行为并导致视图仅使用显式设置的 pivotX 和 pivotY 值。此外,使用的值不是百分比,它们 必须是维度值,这是一个浮点数,附加了一个单位,例如“14.5sp”。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)、mm(毫米)。(来自developer.android.com/reference/android/view/View.html)。
    • @TalMihr 知道如何左右缩放吗?
    【解决方案2】:

    用途:

    view.setPivotY(view.getMeasuredHeight());
    

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

    【讨论】:

      【解决方案3】:

      您的支点将您的观点作为参考。因此,设置为 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
      

      【讨论】:

        猜你喜欢
        • 2018-11-01
        • 2015-02-06
        • 2020-04-07
        • 2016-12-13
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多