Android通過程式碼來繪製UI介面
阿新 • • 發佈:2019-01-02
在Android中,我們可以像java Swing中那樣完全通過程式碼控制UI介面。所有的UI元件都是new出來的。
然後將這些UI元件新增到佈局管理器中,來實現UI介面。
在程式碼中生產介面一般是三個步驟:
1、建立一個佈局管理器,五大布局根據你的需要去建立,並且給建立的佈局新增必要的屬性。
2、建立佈局裡面的具體元件,設定元件的佈局和具體屬性。
3、將建立的具體元件新增到佈局管理器中。
來看一段具體的程式碼:
public class MainActivity extends AppCompatActivity {
String str="";
LinearLayout linearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initXml();//程式碼動態建立佈局
addView();//給建立的佈局中新增控制元件
}
private void initXml() {
linearLayout = new LinearLayout(this);//建立一個線性佈局
linearLayout.setBackgroundColor(Color.WHITE);//設定背景顏色
linearLayout.setOrientation(LinearLayout.VERTICAL);//設定方向
setContentView(linearLayout);
}
private void addView() {
TextView mText1 = new TextView(this);//建立一個TextView
mText1.setText("點選測試");
mText1.setTextColor(Color.BLACK);
mText1.setTextSize(TypedValue.COMPLEX_UNIT_DIP,16 );//設定字型大小
mText1.setGravity(Gravity.CENTER);//設定字型位置
mText1.setPadding(10,20,10,20);
mText1.setBackgroundColor(Color.GRAY);//設定背景顏色
//設定控制元件大小
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
mText1.setLayoutParams(params);
linearLayout.addView(mText1);//將控制元件新增到佈局中
mText1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showMyDialog();
}
});
}
/**
/*展示的dialog
*/
private void showMyDialog() {
final String itemContent[] = new String[]{"李宇春", "王尼瑪", "羅玉鳳", "林志玲"};
str = itemContent[0];//str為一個全域性變數的字串,用來在點選確定時候獲取選中的值
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.btn_star)
.setTitle("你選物件的標準是什麼?").setSingleChoiceItems(itemContent, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
str = itemContent[i];
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
dialog.dismiss();
}
}).setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
Toast.makeText(MainActivity.this, "你喜歡" + str, Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
})
.show();
}
}