1

设想

我正在使用动画制作视图TranslateAnimation以实现下拉视图动画。我面临的问题是动画完成后容器的大小不会增加。

请检查图像和代码段:

TranslateAnimation animation = new TranslateAnimation(0.0f, 0.0f, top, top + px);
animation.initialize(mDropDownLayout.getWidth(),mDropDownLayout.getHeight(), parentLayout.getWidth(), parentLayout.getHeight());
animation.setDuration(2000);
animation.setFillEnabled(true);
animation.setFillBefore(true);
mDropDownLayout.startAnimation(animation);

我想要达到的结果是容器的高度应该随着动画视图的平移而逐渐增加。

更新:此外,动画视图仅在视觉上移动,而不是在结构上移动。

4

3 回答 3

1

我不确定这种方式,但尝试一次。

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

将此 layoutParams 设置为您的relativeLayout

然后您可以根据您的要求更改宽度/高度,如下所示

layoutParams.width = 10;
layoutParams.height = 10;
于 2012-08-28T10:46:11.690 回答
1

布局转换是理想的,如本 DevBytes 插曲所示

于 2013-10-19T11:00:51.103 回答
0

最后,我得到了这个。Android有两种动画包,View动画(android.view.animation)和Property动画(android.animation)。后者是与 Honeycomb 一起引入的。

我首先尝试使用视图动画制作动画,但没有成功,因为在动画完成后我无法将布局结构移动到视觉位置。

然后,我用 Property Animation 进行了尝试,我能够达到预期的效果。我强烈推荐使用属性动画,你也可以通过使用NineOldAndroids库将其用于 11 以下的 api 级别。

我已经在 github 上添加了演示项目。在这里检查

注意:您需要 NineOldAndroids 库才能在所有 api 级别上运行此演示。

于 2012-08-30T15:45:14.053 回答