1. 程式人生 > >Android通過程式碼來繪製UI介面

Android通過程式碼來繪製UI介面

在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(); } }

效果如圖