AbsoluteLayout絕對佈局已經被棄用,可是相關API依然有效,其又被稱爲座標佈局,在iOS開發支持Autolayout以前,全部的佈局模式均可以理解爲絕對佈局。可是iPhone設備的屏幕尺寸有限,使用絕對不覺並不會出現太多難以解決的問題,可是對於Android設備就不一樣了,Android設備的屏幕尺寸和分辨率都無規範,使用座標絕對佈局的缺陷就十分明顯。java
AbsoluteLayout直接經過定位其內部視圖的位置座標點和尺寸來進行佈局,後添加的視圖優先級更高,若是座標有重合,會覆蓋先添加的視圖,示例代碼以下:ide
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AbsoluteLayout absoluteLayout = new AbsoluteLayout(this); absoluteLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); setContentView(absoluteLayout); //添加4個TextView TextView textView1 = new TextView(this); textView1.setText("第1個textView"); //須要注意 這裏的LayoutParams()構造方法中的參數 前兩個參數爲視圖的寬和高 後兩個爲x與y位置座標點 textView1.setLayoutParams(new AbsoluteLayout.LayoutParams(800,300,10,10)); textView1.setBackgroundColor(Color.RED); absoluteLayout.addView(textView1); TextView textView2 = new TextView(this); textView2.setText("第2個textView"); textView2.setLayoutParams(new AbsoluteLayout.LayoutParams(800,300,100,200)); textView2.setBackgroundColor(Color.YELLOW); absoluteLayout.addView(textView2); TextView textView3 = new TextView(this); textView3.setText("第3個textView"); textView3.setLayoutParams(new AbsoluteLayout.LayoutParams(800,300,200,400)); textView3.setBackgroundColor(Color.BLUE); absoluteLayout.addView(textView3); TextView textView4 = new TextView(this); textView4.setText("第4個textView"); textView4.setLayoutParams(new AbsoluteLayout.LayoutParams(800,300,300,600)); textView4.setBackgroundColor(Color.GREEN); absoluteLayout.addView(textView4); }
佈局效果以下圖:佈局
其實佈局容器中子視圖的佈局參數主要有定義在各個佈局容器類的內部類LayoutParams來設置。須要注意,在不一樣分辨率的屏幕上,使用AbsoluteLayout佈局效果可能會難於把控。this
專一技術,熱愛生活,交流技術,也作朋友。spa
——琿少 QQ羣:435043639code