Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式平滑地更改视图高度_Android_View_Height - Fatal编程技术网

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

Android 以编程方式平滑地更改视图高度,android,view,height,Android,View,Height,我正在尝试以编程方式更改视图的高度。 我试过的是- 在某些单击事件中,我使用LayoutParams更改高度 rlOne.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, NEWHEIGHT)); 高度增加,但过渡不平滑。 如何实现从视图原始高度到视图新高度的平滑过渡? 我可以减慢转换速度吗?您可以编写一个for循环,其中视图的高度增加很少,而不是在增加计数器之前暂停。这样,用户将有一个平滑过

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

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

rlOne.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, NEWHEIGHT));
高度增加,但过渡不平滑。
如何实现从视图原始高度到视图新高度的平滑过渡?

我可以减慢转换速度吗?

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

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

使用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);
资料来源:

使用

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

你为什么不直接告诉我这个转变?@MocialovBoris:你能给我更多的信息吗。我应该使用缩放动画吗?除了缩放之外,还有其他东西吗?因为如果我从一侧缩放textView,它看起来不会减小宽度,它看起来像压缩没有编译,您正在为类型为
LinearLayout.LayoutParams
的对象分配一个引用到类型为
LinearLayout
的变量。
LinearLayout linearLayout = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                            LayoutParams.WRAP_CONTENT);