2

我正在尝试以编程方式更改视图的高度。
我试过的是 -

RelativeLayout rlOne;
rlOne = (RelativeLayout) findViewById(R.id.rlOne);

在某些点击事件中,我正在使用 LayoutParams 更改高度。

rlOne.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, NEWHEIGHT));

高度增加但过渡不平滑。
如何实现从视图的原始高度到视图的新高度的平滑过渡?
我可以放慢过渡速度吗?

4

4 回答 4

2

基本上这个想法是,你首先计算新的高度(视图增加后的高度)视图并编写一个线程,逐个像素地增加旧视图的高度(增加之前的视图高度)(可能是 5-一次 10 个像素)直到它达到新的高度。希望这个想法能有所帮助。

于 2013-08-07T07:24:56.507 回答
1

玩从/到/速度值

ScaleAnimation scaleAnimation = new ScaleAnimation(from, to, from, to, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rlOne.setAnimation(scaleAnimation);

资源:

https://stackoverflow.com/a/1624689/1276374

于 2013-08-07T07:43:27.007 回答
0

您可以编写一个 for 循环,其中视图的高度增加非常少,而不是在增加计数器之前暂停。这样,用户就会有平滑过渡的印象。

于 2013-08-07T07:22:23.167 回答
-2

利用

LinearLayout linearLayout = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT);
于 2013-08-07T07:50:01.200 回答