如何翻译和缩放视图顶部叠加工具栏?

时间:2016-11-06 13:29:30

标签: android android-relativelayout

我在我的活动中定义了一个工具栏和一个RelativeLayout容器(不在中间)。

我想定义一个" expand"整个RelativeLayout容器将动画显示在工具栏正上方的操作。

如何正确定义AnimationSetScaleAnimationTranslateAnimation)才能成功?

当前状态的一个示例:

View movement

*"自定义视图"在图中表示我上面描述的RelativeLayout容器。

1 个答案:

答案 0 :(得分:0)

如果你必须使用AnimationSet,它应该看起来像这样:

TranslateAnimation translateAnim = new TranslateAnimation(fromX , toX , fromY , toY);
ScaleAnimation scaleAnim = new ScaleAnimation(fromX , toX , fromY , toY);
AnimationSet animSet = new AnimationSet(true);
animSet.addAnimation(translateAnim);
animSet.addAnimation(scaleAnim);
animSet.setFillAfter(true);
animSet.setDuration(...);

当然你必须填写fromX,toX等的值

但你也可以使用ViewPropertyAnimator而不是AnimationSet,这样代码更少,而且非常容易使用:

relativeLayout.animate()
    .translationY(0) // 0 is top of Y axis
    .scaleX(...)      
    .setDuration(...);

这只是为了指明你的方向,只需用你需要的值填空,并检查文档中的其他可用方法。