android 动态生成控件,怎么设置控件的大小
答案:2 悬赏:50 手机版
解决时间 2021-02-02 12:27
- 提问者网友:遮云壑
- 2021-02-02 08:55
android 动态生成控件,怎么设置控件的大小
最佳答案
- 五星知识达人网友:风格不统一
- 2021-02-02 09:43
首先,你这个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);
其次,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);
全部回答
- 1楼网友:过活
- 2021-02-02 10:13
一、方法
使用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一般是在加入容器中设置的,所以容易混淆所指定的布局属性究竟是保存在容器中,还是控件本身的属性,答案是控件本身。但是在设置时还是要注意布局属性与容器种类密切相关。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯