我在我的活动中定义了一个工具栏和一个RelativeLayout
容器(不在中间)。
我想定义一个" expand"整个RelativeLayout
容器将动画显示在工具栏正上方的操作。
如何正确定义AnimationSet
(ScaleAnimation
和TranslateAnimation
)才能成功?
当前状态的一个示例:
*"自定义视图"在图中表示我上面描述的RelativeLayout
容器。
答案 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(...);
这只是为了指明你的方向,只需用你需要的值填空,并检查文档中的其他可用方法。