編輯:關於Android編程
一個豐富的界面是由很多個控件組成的,如何讓各個控件都有條不紊的擺放在介面上,這就需要布局來實現了,布局可以說是一種容器,可以按照一定規律調整控件的位置,布局之內也可以放置布局,完成一些復雜的界面。常用的布局有以下五種:
LinearLayout——線性布局
RelativeLayout——相對布局
FrameLayout——幀布局
TableLayout——表格布局
AbsoluteLayout——絕對布局(基本不用)
4.0版本新特性:
GridLayout——網格布局
線性布局,其中的控件會自動按照水平或垂直的方式依次排列。
(1)android:orientation屬性:指定其排列方向,vertical代表垂直排列,horizontal代表水平排列,如果不定義的話,默認為horizontal。下面根據代碼可以看看具體效果。
注釋:wrap_content:表示控件占用自身大小的空間
match_parent:表示控件占滿其父控件,在早期版本中叫做fill_parent
vcq9tcSjrL/J0aHWtbD8wKh0b3CjrCBib3R0b22jrCBsZWZ0IKOsIHJpZ2h0o6wgY2VudGVyX3ZlcnRpY2Fso6wgZmlsbF92ZXJ0aWNhbKOsIGNlbnRlcl9ob3Jpem9udGFso6wgZmlsbF9ob3Jpem9udGFso6wgY2VudGVyo6wgZmlsbCCjrCBjbGlwX3ZlcnRpY2Fso6wgY2xpcF9ob3Jpem9udGFsIKOsIHN0YXJ0o6wgZW5koaO4+b7d0uLLvL/J1qq1wMrH1PXR+bXEttTG67e9yr2jrLTLtKayu9TZvfjQ0LT6wuvS1LywzbzGrNW5yr7By6GjPGJyIC8+DQo8c3Ryb25nPigzKWFuZHJvaWQ6bGF5b3V0X3dlaWdodLrNd2VpZ2h0U3VtyvTQ1Dwvc3Ryb25nPjxiciAvPg0KTGluZWFyTGF5b3V0zNjT0LXEyvTQ1KGjy/yx7cq+scjW2LXE0uLLvKOsv8nKtc/WsNm31rHIsry+1jxiciAvPg0Kd2VpZ2h00uLS5c6qv9i8/rC01dWxyMD9t9bF5Li4v9i8/sqj0+C/2Lz+o6yi2cjnufvBvbj2v9i8/rXEv+22yLa8zqptYXRjaF9wYXJlbnQsuLi/2Lz+tcTKo9Pgv9i8/s6quLrK/aOssLSxyMD9t9bF5L7Nu+HP1Mq+zqq3tLHIwP2ho6LayOe5+7C01dXRz7jxtcSxyMD9t9bF5LXEu7DH67iz1rXOqjBkcKGjPGJyIC8+DQp3ZWlnaHRTdW3S4tLlzqqxyNbYus2jrMno1sO6w9fctcSxyNbYt93K/aOsv8nS1NTa19O/2Lz+1tDJ6NbD1byxyNbYus21xLfdyv2ho7T6wuvI58/Co7o8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;">
(4)android:layout_marginxxx 和 android:layout_paddingxxx屬性
xxx可代表:Bottom,End,Left, Right, Start, Top
margin表示的是view的邊緣與臨近控件的邊緣的距離
padding填充的意思,指的是view中的content與view邊緣的距離。
簡單地說,margin指的是外部離開的距離,padding指的是內部離開的距離。
(5)android:visibility屬性
Android開發中,大部分控件都有visibility這個屬性,其屬性有3個分別為“visible (可見)”、“invisible(不可見)”、“gone(隱藏)”。主要用來設置控制控件的顯示和隱藏。
相對布局中的視圖組件是按相互之間的相對位置來確定的,四套相對屬性,①相對父控件位置,②相對父控件居中方式,③相對子控件位置,④相對子控件邊緣對齊
(1)android:layout_alignParentxxx(與父控件邊緣對齊)
(2)android:layout_centerxxx(與父控件中心對齊)
(3)android:layout_toxxxof和android:layout_above(below)(子控件與子控件對齊)
(2)(3)例結合在一起進行代碼和圖片的展示
(4)android:layout_alignxxx(子控件與子控件邊緣對齊)
幀布局中的每一個組件都代表一個畫面,是一層一層覆蓋的。
默認以屏幕左上角作為(0, 0)坐標,按組件定義的先後順序依次逐屏顯示,後面出現的會覆蓋前面的畫面。控件可以通過android:layout_gravity屬性控制自己在父控件中的位置。
<framelayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"></framelayout>
TableLayout屬於行和列形式的管理控件,每行為一個TableRow對象,也可以是一個View對象。
在TableRow中還可以繼續添加其他的控件,每添加一個子控件就成為一列。TableLayout不會生成邊框。
(1)android:collapseColumns:隱藏某一列
(2)android:shrinkColumns=“0,1,2…”:收縮哪幾列達到充滿(用在所有列自適應超出屏幕)
(3)android:stretchColumns=“0,1,2…”:擴充哪幾列(用在所在列自適應後未充滿的情況)
(4)android:layout_span :跨列
因為該布局是采用坐標的形式來進行布局定位的,布局的dp都是固定的,以至於在不同分辨率的手機上顯示的布局大小不同造成差異,因此Android中很少有采用這種布局方式的。
使用意圖傳遞數據的幾種方式 點此獲取完整代碼 我們除了要從活動返回數據,也常常要傳遞數據給活動。對此我們可以使用Intent對象將這些數據傳遞給目標活動。
在啟動Android應用時, 直接顯示頁面, 就稱之為冷啟動(Cold Start). 為了增強用戶體驗, 可以添加控件動畫, 讓啟動頁面更有趣, 用戶也更加容易接受.
一直有人問我說,一個項目拿到需求以後怎麼去實現,還有一個app如何去構思,如何去下手,該從那裡去寫,這裡我來簡單的說下,這裡我們拿一個最簡單的天氣預報來說明。宏觀上面來看
1 SeekBar簡介SeekBar是進度條。我們使用進度條時,可以使用系統默認的進度條;也可以自定義進度條的圖片和滑塊圖片等。2 SeekBar示例創建一個activi