我知道现在回答这个问题真的太晚了,但我只会告诉我选择为有需要的人动画布局更改的方式。
Android 有一个特殊的 Animation 类ScaleAnimation
,我们可以在其中平滑地展开或折叠视图。
通过对角线展开显示视图:
ScaleAnimation expand = new ScaleAnimation(
0, 1.0f,
0, 1.0f,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0);
expand.setDuration(250);
view.startAnimation(expand)
使用的构造函数是:
ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
因此,您可以相应地更改值。
例如,下面的示例将水平动画视图:
ScaleAnimation expand = new ScaleAnimation(
0, 1.1f,
1f, 1f,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0);
expand.setDuration(250);
您可以根据需要更改fromX
, toX
, fromY
& 。toY
例如,如果显示视图并且您必须将其展开,则根据需要将fromX
and放置fromY
到1.0f
, and 。toX
toY
现在,使用同一个类,您可以通过稍微扩展视图然后将其缩小到原始大小来创建更酷的显示视图效果。为此,AnimationSet
将使用。所以它会产生一种泡沫效应。
下面的示例用于创建气泡效果以显示视图:
AnimationSet expandAndShrink = new AnimationSet(true);
ScaleAnimation expand = new ScaleAnimation(
0, 1.1f,
0, 1.1f,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0);
expand.setDuration(250);
ScaleAnimation shrink = new ScaleAnimation(
1.1f, 1f,
1.1f, 1f,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0);
shrink.setStartOffset(250);
shrink.setDuration(120);
expandAndShrink.addAnimation(expand);
expandAndShrink.addAnimation(shrink);
expandAndShrink.setFillAfter(true);
expandAndShrink.setInterpolator(new AccelerateInterpolator(1.0f));
view.startAnimation(expandAndShrink);