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一般是在加入容器中设置的,所以容易混淆所指定的布局属性究竟是保存在容器中,还是控件本身的属性,答案是控件本身。但是在设置时还是要注意布局属性与容器种类密切相关。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-01
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设置也没用本回答被提问者采纳
第2个回答  2015-06-03
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设置也没用

android 动态生成控件,怎么设置控件的大小
一、方法 使用getLayoutParams() 和setLayoutParams()方法 二、示例代码 LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams();\/\/ 取控件aaa当前的布局参数 linearParams.height = 365; \/\/ 当控件的高强制设成365象素 aaa.setLayoutParams(linearParams); \/\/ 使设置...

android 代码里怎么设置控件的宽度
在对应的控件中使用android:layout_width标签即可。android:layout_width标签中可以使用match_parent常量使控件尺寸与其上级组件尺寸相同 可以使用wrap_content使控件尺寸刚好包裹住内容 也可以使用px(像素)、pt(磅)、dp(密度)、sp(可伸缩像素)作为单位,从而设置控件的宽度:例如:<EditText android:la...

如何正确获取Android控件的高度
Android动态改变View控件大小的方法:1、声明控件参数获取对象 LayoutParams lp;2、获取控件参数: lp = 控件id.getLayoutParams();3、设置控件参数:如高度。 lp.height -= 10;4:、使设置生效:控件id.setLayoutParams(lp);例如如要把Imageview下移200px: ImageView.setPadding( ImageView.getPa...

Android中如何在代码中设置View的宽和高?
LayoutParams windowLayoutParams = window.getAttributes(); \/\/ 获取对话框当前的参数值 windowLayoutParams.width = (int) (display.getWidth() * 0.7); \/\/ 宽度设置为屏幕的0.95 windowLayoutParams.height = (int) (display.getHeight() * 0.1); \/\/ 高度设置为屏幕的0.6 windowLayoutParams....

Android自定义TextView实现高度和宽度,解决字体适配问题
实践过程中,我们发现TextView在无宽高限制且未受权重布局影响时,可以自动根据控件大小调整字体大小。只需在布局中设定最大设备的字体大小,小设备则会自动缩放,实现神奇的适配效果。关键在于理解和使用TextPaint的measureText(text) descent ascent方法。尽管代码示例和详细注释在本文中未直接给出,但它们在...

动态设置控件大小呢?android
比如一个button在一个LinearLayout里面。那么 b.setLayoutParams(new LinearLayout.LayoutParams(10,10));d单位是像素。

android 代码中设置控件的垂直居中和两个控件之间的距离。
FIT_START \/ fitStart 把图片按比例扩大\/缩小到View的宽度,显示在View的上部分位置 FIT_XY \/ fitXY 把图片不按比例扩大\/缩小到View的大小显示 MATRIX \/ matrix用矩阵来绘制,动态缩小放大图片来显示。XML属性属性名称 描述android:background 设置背景色\/背景图片。可以通过以下两种方法设置背景为透明:”@android:co...

Android字体大小怎么自适应不同分辨率
1. 尽量使用wrap_content、match_parent、weight 来规定layout的大小。2. 要确保布局的灵活性并适应各种尺寸的屏幕,应使用 “wrap_content” 和 “match_parent” 控制某些视图组件的宽度和高度。3. 使用 “wrap_content”,系统就会将视图的宽度或高度设置成所需的最小尺寸以适应视图中的内容,而 “...

linearlayout布局下android:layout_weight用法
二、在垂直LinearLayout中使用layout_weight 在垂直的LinearLayout中,如果设置了layout_weight属性,那么控件的高度将根据权重值动态调整。这意味着如果你设定某个控件的layout_weight大于另一个控件的值,那么这个控件在视觉上会显得更高一些,前提是它的高度未被固定设定且存在额外空间。此情况下,系统会根据...

android动态设置edittext高度,该怎么处理
= 200;\/\/注意这里,到底是用ViewGroup还是用LinearLayout或者是FrameLayout,主要是看你这个EditTex \/\/控件所在的父控件是啥布局,如果是LinearLayout,那么这里就要改成LinearLayout.LayoutParams ViewGroup.LayoutParams lp = editText.getLayoutParams();lp.height = newHeight;editText.setLayoutParams(lp);

相似回答