android 如何动态设置控件的宽度和高度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 如何动态设置控件的宽度和高度相关的知识,希望对你有一定的参考价值。

一、方法
  使用getLayoutParams() 和setLayoutParams()方法
二、示例代码
  LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams();
   // 取控件aaa当前的布局参数
  linearParams.height = 365; // 当控件的高强制设成365象素
  aaa.setLayoutParams(linearParams); // 使设置好的布局参数应用到控件aaa
三、原理
  a)getLayoutParams()和setLayoutParams()都是控件基类view的public方法,在外部也可以直接调用。
  b)由于LayoutParams一般是在加入容器中设置的,所以容易混淆所指定的布局属性究竟是保存在容器中,还是控件本身的属性,答案是控件本身。但是在设置时还是要注意布局属性与容器种类密切相关。
参考技术A android中的控件如果在xml布局文件中把控件的layout_width和layout_height写成固定值了,好像就不能再在程序中更改该控件的高度和宽度了,不知哪位大侠有何良策可以指教一二,如xml文件内容如下:<LinearLayoutandroid:id="@id/dialog_bottom_neutral"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="1.0"android:gravity="center"<Buttonandroid:id="@id/dialog_bottom_neutral_button"android:layout_width="80.0dip"android:layout_height="28.0dip"android:background="@drawable/dlg_button"android:gravity="center"android:singleLine="true"android:text="mid"android:textColor="@drawable/dlg_button_text_color"android:textSize="14.0sp" /小弟在程序中使用button.width和button.height设置没用,用LayoutParmas设置也没用本回答被提问者采纳 参考技术B android中的控件如果在xml布局文件中把控件的layout_width和layout_height写成固定值了,好像就不能再在程序中更改该控件的高度和宽度了,不知哪位大侠有何良策可以指教一二,如

xml文件内容如下:

<LinearLayout

android:id="@id/dialog_bottom_neutral"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1.0"

android:gravity="center" >

<Button

android:id="@id/dialog_bottom_neutral_button"

android:layout_width="80.0dip"

android:layout_height="28.0dip"

android:background="@drawable/dlg_button"

android:gravity="center"

android:singleLine="true"

android:text="mid"

android:textColor="@drawable/dlg_button_text_color"

android:textSize="14.0sp" />

</LinearLayout>

如何在程序中动态设置button的宽度和高度呢

小弟在程序中使用button.width和button.height设置没用,用LayoutParmas设置也没用

.net中如何动态改变Label控件的位置

我在Winform中有一个Label控件 我想要它随着窗体的Resize而动态调整在窗体中的位置 本来我打算在Form的Resize事件中 将Label.Location.X和Label.Location.Y的值 设成宽度和高度的一半 来使它居中 但是编译时报错说Location不能赋值 不是变量 那请问 我应该怎么做来达到我想要的要求呢

调整窗口大小,让控件的位置动态调整,不是靠Resize事件中手动设置控件的位置,
你以前是学vb的吗?vb调整窗口大小,需要手动在Resize事件中手动设置控件的位置,.net有更智能的操作,

选中控件,右键属性,找到【Anchor】属性,这个属性就是设置控件随窗体大小动态调整位置的属性,点开右边的下拉框,可以看到一个方块四周有四个块,默认选中的是上面和左边的块,这表明:调整窗体时,上边距和左边距始终保持不变。同样,可以设置左,右,上,下的块,使控件对应的边距随窗体大小改变而改变,

ps:设置控件的位置,是这样设置的:
Label.Location = new Point(20,20);
参考技术A   vb调整窗口大小,需要手动在Resize事件中手动设置控件的位置,.net有更智能的操作。
  选中控件,右键属性,找到【Anchor】属性,这个属性就是设置控件随窗体大小动态调整位置的属性,点开右边的下拉框,可以看到一个方块四周有四个块,默认选中的是上面和左边的块,这表明:调整窗体时,上边距和左边距始终保持不变。同样,可以设置左,右,上,下的块,使控件对应的边距随窗体大小改变而改变,
  ps:设置控件的位置,是这样设置的:Label.Location = new Point(20,20)。
参考技术B .net 解决不了这个问题,窗口的resize时间是客户端发生的。.net服务端根本无法获得客户端窗口重画的事件。你这个问题的解决只能靠js来解决。

window 对象好像有个onresizeend事件 ,在这里面定位到你的标签 然后用css控制他的位置试试吧

以上是关于android 如何动态设置控件的宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

android 动态设置布局宽度

android 开发的时候怎么动态设置控件宽高

如何设置用户控件的高度和宽度

Android 自定义控件 动态设置高度

如何动态设置ImageView的宽度高度以及位置

Android中仿淘宝商品详情ViewPager页面数据手动滑动