android 动态生成控件,怎么设置控件的大小

android在代码中动态生成控件,想把其中的一个BUTTON的大小设置成android:layout_width="wrap_content"android:layou... android 在代码中动态生成控件,想把其中的一个BUTTON的大小设置成android:layout_width="wrap_content"
android:layout_height="30dip"
展开
 我来答
woshidaniel
2015-08-12 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:952万
展开全部
一、方法
  使用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一般是在加入容器中设置的,所以容易混淆所指定的布局属性究竟是保存在容器中,还是控件本身的属性,答案是控件本身。但是在设置时还是要注意布局属性与容器种类密切相关。
hl233211
2011-10-27 · TA获得超过606个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:386万
展开全部
首先,你这个button被包含在哪个父控件中,假定为LinearLayout,变量是mLinear
其次,30dip在代码中要换成像素。

结果:

Button button = new Button(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
30, getResources().getDisplayMetrics());
button.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, px));
// 如果父窗口是FrameLayout就写FrameLayout.LayoutParams
mLinear.addView(button);
追问
再问个问题~~怎么把LinearLayout中的控件在动态代码中设置成横向排列的?
追答
// 纵向
LinearLayout.setOrientation(LinearLayout.VERTICAL);

// 横向
LinearLayout.setOrientation(LinearLayout.HORIZONTAL);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式