A. android基礎之常用五種布局
所有東西依次都放在左上角,會重疊,這個布局比較簡單,也只能放一點比較簡單的東西。
分為垂直布局( android:orientation="vertical" )和水平布局( android:orientation="horizontal" )。
垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;
水平布局時,只有一行,每一個元素依次向右排列。
用X,Y坐標來指定元素的位置,這種布局方式也比較簡單
在屏幕旋轉時,往往會出問題,而且多個元素的時候,計算比較麻煩。
可以理解為某一個元素為參照物,來定位的布局方式。
主要屬性有:
相對於某一個元素 android:layout_below 、 android:layout_toLeftOf
相對於父元素的地方 android:layout_alignParentLeft 、 android:layout_alignParentRigh ;
每一個 TableLayout 裡面有表格行 TableRow , TableRow 裡面可以具體定義每一個元素。每一個布局都有自己適合的方式,這五個布局元素可以相互嵌套應用,做出美觀的界面。
B. Android線性布局重要屬性
在Android開發中,了解線性布局的屬性是構建界面的關鍵。本文將深入講解兩個重要屬性:gravity和layout_weight,以幫助開發者更高效地構建應用。
首先,我們來談談gravity屬性。它有兩種形式:layout_gravity和gravity。盡管它們看起來相似,但它們的作用對象和作用范圍有所不同。layout_gravity控制控制項在父布局中的位置,與margin類似;而gravity則控制控制項中內容的顯示位置,與padding類似。例如,設置layout_gravity為center_horizontal可使控制項水平居中,right則使控制項向右對齊。
接下來,我們通過實例來理解layout_gravity的用法。假設我們有一個垂直布局的LinearLayout,其中包含三個TextView,分別設置了layout_gravity為center_horizontal、right、left。預覽窗口中,這些TextView將按照設置的gravity屬性呈現不同的對齊方式。
為了展示gravity的另一個維度,我們將orientation設置為horizontal。這時,設置為center_vertical、bottom和top的gravity屬性將分別使TextView垂直居中、位於底部和頂部,直觀地展示其作用。
轉向layout_weight屬性,它在分配屏幕的寬高時發揮重要作用。通過結合不同的寬度值和weight值,開發者可以實現靈活的布局效果。例如,當layout_width設置為match_parent時,不同weight值的TextView將根據比例占據屏幕寬度。若weight值為5和1,第一個TextView將比第二個更窄,比例為1:5。進一步調整weight值,如將第一個TextView的weight設置為10或100,可以看到寬度的變化,直至幾乎完全隱藏。
對於layout_width設置為wrap_content的情況,weight值越大,TextView占據的寬度也越大,但並未按照固定比例顯示。改變第一個TextView的weight值,可以看到寬度增加量並不與weight值成正比,第二個TextView始終包裹內容,不被壓縮消失。
在某些情況下,設置layout_width為0dp可以更好地使用layout_weight屬性。這是因為SDK推薦將寬度設置為0dp來優化布局效率。這樣做允許系統採用不同的演算法計算控制項的佔比,確保weight值與占據的「寬度」成正比。
除了weight值,開發者還可以利用weightSum屬性來控制所有子布局在父布局中的比例。通過設置weightSum為某個值,可以確保子布局根據weight值在父布局中分配寬度。例如,設置weightSum為2時,將TextView的weight設置為1,可以使其占據寬度的一半。調整weightSum和weight值,可以實現更復雜的布局效果。
總的來說,gravity和layout_weight屬性是構建高效、響應式Android應用的關鍵。通過深入理解並熟練運用這些屬性,開發者可以創建出更加靈活、美觀的用戶界面。無論是新手還是經驗豐富的開發者,掌握這些屬性都是必備技能。希望本文的介紹能幫助你更好地運用這些屬性,構建出色的應用。
C. Android 常見布局
Android六大基本布局分別是:線性布局LinearLayout、表格布局TableLayout、相對布局RelativeLayout、層布局FrameLayout、絕對布局AbsoluteLayout、網格布局GridLayout。其中,表格布局是線性布局的子類。網格布局是android 4.0後新增的布局。
在手機程序設計中,絕對布局基本上不用,用得相對較多的是線性布局和相對布局。
padding是站在父view的角度描述問題,它規定它裡面的內容必須與這個父view邊界的距離。margin則是站在自己的角度描述問題,規定自己和其他(上下左右)的view之間的距離,如果同一級只有一個view,那麼它的效果基本上就和padding一樣了。
顯示特點:所有子控制項按照橫向或者豎向依次排列
left(左)、right(右)、top(上)、bottom(下)、center(中心)、
enter_vertical(豎向中心)、center_horizontal(橫向中心)
left(左)、right(右)、top(上)、bottom(下)、center(中心)、
enter_vertical(豎向中心)、center_horizontal(橫向中心)
子控制項的用法:android:layout_weight="1" 多個控制項同時使用,可以實現平分的效果
顯示特點:和LinearLayout布局相似,所有子控制項默認顯示在RelativeLayout的左上角
layout_toRightOf 在指定控制項的右邊
layout_toLeftOf 在指定控制項的左邊
layout_above 在指定控制項的上邊
layout_below 在指定控制項的下邊子控制項對齊關系
layout_alignRight 與指定控制項右對齊
layout_alignLeft 與指定控制項左對齊
layout_alignTop 與指定控制項上對齊
layout_centerInParent 與父容器中間對齊 pairunte
layout_centerVertical 與父容器豎向中心對齊
layout_centerHorizontal 與父容器橫向中心對齊
layout_alignParentLeft 與父容器左邊對齊
layout_alignParentTop 與父容器上邊對齊
layout_alignParentRight 與父容器右邊對齊
layout_alignParentBottom 與父容器下邊對齊
顯示特點:所有子控制項默認在GridLayout中橫向依次排列,當只等每行的列數時,到達指定列數
會自動換行顯示。
layout_column 在網格的第幾列
layout_row 在網格的第幾行
layout_columnSpan 跨列
layout_rowSpan 跨行
layout_gravity 在一個網格中的重心位置
columnCount 每行列總數
顯示特點:所有的子控制項默認顯示在FrameLayout的左上角,會重疊在一起顯示。
layout_gravity(設置給子控制項,調整控制項在容器內的重心)
常用值:
left(左)、 right(右)、
top(上)、 bottom(下)、
center(中心)、 center_vertical(豎向中心)
center_horizontal(橫向中心)
表格布局和網格布局類似,但是需要注意的是,表格布局不能跨行,只能跨列
D. android中常見的五種布局有什麼特點
1,FrameLayout,特點:所有的View都會放在左上角,並且後添加進去的View會覆蓋之前放進去的View。
2,LinearLayout,特點:在水平或者垂直方向上依次按照順序來排列子元素,控制項的排列順序遵循其在布局文件中被寫出的先後順序。
3,RelativeLayout,特點:以某一個子元素為參照物,其餘子元素均按照其相對位置來完成布局。
4,TableLayout,特點:每個TableLayout都是由一個或多個TableRow組成的,一個TableRow就代表TableLayout的一行。
5,AbsoluteLayout,表格布局類似Html裡面的Table。每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素,設定他的對齊方式 android:gravity="" 。
(4)android布局解析擴展閱讀:
開放性:
在優勢方面,Android平台首先就是其開放性,開發的平台允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平台也將很快走向成熟。
開放性對於Android的發展而言,有利於積累人氣,這里的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟體資源。開放的平台也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。
豐富的硬體:
這一點還是與Android平台的開放性相關,由於Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特色,卻不會影響到數據同步、甚至軟體的兼容,如同從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟體帶到iPhone上使用、聯系人等資料更是可以方便地轉移。
E. android中五種布局有什麼不同
五種布局方式,分別是:FrameLayout(框架布
局),LinearLayout
(線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)
一、FrameLayout
這個布局可以看成是牆腳堆東西,有一個四方的矩形的左上角牆腳,我們放了第一個東西,要再放一個,那就在放在原來放的位置的上面,這樣依次的放,會蓋住原來的東西。這個布局比較簡單,也只能放一點比較簡單的東西。
二、LinearLayout
線性布局,這個東西,從外框上可以理解為一個div,他首先是一個一個從上往下羅列在屏幕上。每一個LinearLayout裡面又可分為垂直布局
(android:orientation="vertical")和水平布局(android:orientation="horizontal"
)。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。
linearLayout中有一個重要的屬性 android:layout_weight="1",這個weight在垂直布局時,代錶行距;水平的時候代表列寬;weight值越大就越大。
三、AbsoluteLayout
絕對布局猶如div指定了absolute屬性,用X,Y坐標來指定元素的位置android:layout_x="20px"
android:layout_y="12px" 這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算比較麻煩。
四、RelativeLayout
相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:
相對於某一個元素
android:layout_below="@id/aaa" 該元素在 id為aaa的下面
android:layout_toLeftOf="@id/bbb" 改元素的左邊是bbb
相對於父元素的地方
android:layout_alignParentLeft="true" 在父元素左對齊
android:layout_alignParentRight="true" 在父元素右對齊
還可以指定邊距等,具體詳見API
五。TableLayout
表格布局類似Html裡面的Table。每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素,設定他的對齊方式 android:gravity="" 。
每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應用,做出美觀的界面。-----------------cvsyun。