文章目錄
所謂用代碼建立視圖,是指不是通過XML來構造Activity的視圖或者ListView的中的每隔ItemView(如下所示),
publicclass HelloWorld extends Activity {
private TextView mTextView;
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView)findViewById(R.id.textView);
}
}
而是直接用代碼來建立控制項以及整個視圖(如下說是),
publicclass HelloWorld extends Activity {
private TextView mTextView;
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout =new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
mTextView =new TextView(this);
mTextView.setText("Hello World");
layout.addView(mTextView);
setContentView(layout);
}
}
其好處:
1.效率高。
因為findViewById這個函數的效率是很低的.
2.還能減小應用程式開發包(APK檔案)的大小。
3.混淆後,還不容易被人破解布局。
後記:
1.當項目的工程比較大時,或者說介面比較多時,就會發現有很多重複的代碼,所以,項目開始的時候,就應該考慮
大到Activity 小到一個View的建立都需要考慮重用或者把抽象的部分抽出來封裝下。
2.如果是UI變化的可能性很大或者位置經常調整的或者是項目開始的時候,需要考慮先用XML來寫,等待穩定或者項目後掐,由於效能需要再考慮用代碼
來寫布局。