以编程方式更改视图高度平滑

时间:2013-08-07 07:20:11

标签: android view height

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

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

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

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

高度增加但转换不顺畅 如何实现从视图原始高度到视图新高度的平滑过渡? 我可以减缓过渡吗?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你可以写一个for循环,其中视图的高度增加很少,而不是在增加计数器之前进行暂停。通过这种方式,用户将获得平滑过渡的印象。

答案 2 :(得分:0)

使用from / to / speed值

进行游戏
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

答案 3 :(得分:-1)

使用

LinearLayout linearLayout = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT);