使用 ViewPropertyAnimator 和 scaleY 时如何将视图锚定到顶部?

Mar*_*ker 3 animation android view

我正在尝试在 Android (API 15) 中对视图进行动画处理,以便通过从顶部向下展开来显示它,并通过向上收缩来隐藏它,就像这个 jQuery SlideUp()/slideDown() 示例一样。

我尝试使用ViewPropertyAnimator.scaleY(float)以下方法来实现:

隐藏:

view.animate()
    .setInterpolator(new AccelerateDecelerateInterpolator())
    .scaleY(0f)
    .start();
Run Code Online (Sandbox Code Playgroud)

展示:

view.animate()
    .setInterpolator(new AccelerateDecelerateInterpolator())
    .scaleY(1f)
    .start();
Run Code Online (Sandbox Code Playgroud)

这是可行的,只不过视图收缩到垂直中心或从垂直中心展开,而不是顶部。

有没有办法将这个动画锚定在顶部,仍然使用ViewPropertyAnimator?如果没有,最好的选择是什么?

Bud*_*ius 5

在动画之前根据需要调整枢轴

view.setPivotY(0f); // 0 = top of the view
Run Code Online (Sandbox Code Playgroud)

参考:https://developer.android.com/reference/android/view/View.html#setPivotY(float)