http://www.aichengxu.com/Java/73893.htm
Android動(dòng)態(tài)設(shè)置控件大小以及設(shè)定margin以及padding值煌往,有需要的朋友可以參考下。
一蚯舱、概述
在android開(kāi)發(fā)了,我們經(jīng)常會(huì)遇到動(dòng)態(tài)添加控件海蔽,或許是TextView或者Button之類的锥咸,需要設(shè)置控件的大小,margin值或者padding值,注意欢唾,一般默認(rèn)的寬是填充父窗體且警,高為包裹內(nèi)容;
二礁遣、實(shí)現(xiàn)過(guò)程(以TextView為例)
TextView textView = new TextView(getApplicationContext());
textView.setBackgroundColor(Color.GRAY);
textView.setTextColor(Color.WHITE);
textView.setText("動(dòng)態(tài)設(shè)置控件大小");
// 1斑芜、設(shè)置固定大小
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200, 100);
// 設(shè)置包裹內(nèi)容或者填充父窗體大小
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
//設(shè)置padding值
textView.setPadding(10, 10, 10, 10);
//設(shè)置margin值
lp.setMargins(20, 20, 0, 20);
view.addView(textView,lp);
以上方法經(jīng)本人親測(cè),絕對(duì)不會(huì)出錯(cuò)祟霍;
三杏头、以下是錯(cuò)誤的做法(本人親測(cè))
第一種做法:
LinearLayout.LayoutParams?linearParams?=(LinearLayout.LayoutParams)?textView.getLayoutParams();?//取控件textView當(dāng)前的布局參數(shù)
linearParams.height?=?20;//?控件的高強(qiáng)制設(shè)成20
linearParams.width?=?30;//?控件的寬強(qiáng)制設(shè)成30
textView.setLayoutParams(linearParams);?//使設(shè)置好的布局參數(shù)應(yīng)用到控件
第二種做法
LayoutParams laParams=(LayoutParams)textView.getLayoutParams();
laParams.height=200;
laParams.width=100;
view.addView(textView,laParams);
這兩種方法一般會(huì)有空指針異常,我試了很多遍沸呐,都會(huì)出錯(cuò)醇王;