更改动画视图的容器大小

时间:2012-08-28 10:22:52

标签: android drop-down-menu view android-animation

Scenario

我正在使用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);

我想要实现的结果是容器的高度应该随着动画视图的逐步翻译而增加。

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

3 个答案:

答案 0 :(得分:1)

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

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

将此layoutParams设置为relativeLayout

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

layoutParams.width = 10;
layoutParams.height = 10;

答案 1 :(得分:1)

Layout Transitions是理想的,如DevBytes剧集中所示

答案 2 :(得分:0)

最后,我得到了这个。 Android有两种类型的动画包,查看动画(android.view.animation)和属性动画(android.animation)。后者是与Honeycomb一起推出的。

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

然后,我尝试使用Property Animation,我能够达到预期的效果。 我强烈建议使用属性动画,你也可以使用NineOldAndroids库将它用于低于11的api级别。

我在github上添加了演示项目。 Check it here

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