① 如何在android中使用html作布局文件
在android開發中,通常使用xml格式來描述布局文件。就目前而言,熟悉android布局及美化的人員少之又少,出現了嚴重的斷層。大部分企業,其實還是程序員自己動手布局。這樣既浪費時間和精力,也未必能達到理想的效果。但是,在企業級的android開發中,使用html頁面進行布局,也有很多的優勢(例如:簡單,大部分開發人員及美工都熟悉,方便統一進行更新,管理)。據筆者了解,已經有不少的公司在使用這種方式進行布局開發。這也可能是一種趨勢。
下面,我將給出一個實例代碼,供大家學習使用html頁面給android應用布局。
java代碼
package com.dazhuo.ui;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import com.dazhuo.domain.Person;
import com.dazhuo.service.PersonService;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
public class MainActivity extends Activity {
private PersonService service;
private WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
service =new PersonService();
webview = (WebView) this.findViewById(R.id.webView);//android內置瀏覽器對象
webview.getSettings().setJavaScriptEnabled(true);//啟用javascript支持
//添加一個js交互介面,方便html布局文件中的javascript代碼能與後台java代碼直接交互訪問
webview.addJavascriptInterface(new PersonPlugin() , "Person");//new類名,交互訪問時使用的別名
// <body onload="javascript:Person.getPersonList()">
webview.loadUrl("file:///android_asset/index.html");//載入本地的html布局文件
//其實可以把這個html布局文件放在公網中,這樣方便隨時更新維護 例如 webview.loadUrl("www.xxxx.com/index.html");
}
//定義一個內部類,從java後台(可能是從網路,文件或者sqllite資料庫) 獲取List集合數據,並轉換成json字元串,調用前台js代碼
private final class PersonPlugin{
public void getPersonList(){
List<Person> list = service.getPersonList();//獲得List數據集合
//將List泛型集合的數據轉換為JSON數據格式
try {
JSONArray arr =new JSONArray();
for(Person person :list)
{
JSONObject json =new JSONObject();
json.put("id", person.getId());
json.put("name", person.getName());
json.put("mobile",person.getMobile());
arr.put(json);
}
String JSONStr =arr.toString();//轉換成json字元串
webview.loadUrl("javascript:show('"+ JSONStr +"')");//執行html布局文件中的javascript函數代碼--
Log.i("MainActivity", JSONStr);
} catch (Exception e) {
// TODO: handle exception
}
}
//打電話的方法
public void call(String mobile){
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile));
startActivity(intent);
}
}
}
Java代碼
package com.dazhuo.domain;
public class Person {
private Integer id;
public Integer getId() {
return id;
}
public Person(Integer id, String name, String mobile) {
super();
this.id = id;
this.name = name;
this.mobile = mobile;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
private String name;
private String mobile;
}
Java代碼
package com.dazhuo.service;
import java.util.ArrayList;
import java.util.List;
import com.dazhuo.domain.Person;
public class PersonService {
public List<Person> getPersonList()
{
List<Person> list =new ArrayList<Person>();
list.add(new Person(32, "aa", "13675574545"));
list.add(new Person(32, "bb", "13698874545"));
list.add(new Person(32, "cc", "13644464545"));
list.add(new Person(32, "dd", "13908978877"));
list.add(new Person(32, "ee", "15908989898"));
return list;
}
}
Html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function show(jsondata){
var jsonobjs = eval(jsondata);
var table = document.getElementById("personTable");
for(var y=0; y<jsonobjs.length; y++){
var tr = table.insertRow(table.rows.length); //添加一行
//添加三列
var td1 = tr.insertCell(0);
var td2 = tr.insertCell(1);
td2.align = "center";
var td3 = tr.insertCell(2);
td3.align = "center";
//設置列內容和屬性
td1.innerHTML = jsonobjs[y].id;
td2.innerHTML = jsonobjs[y].name;
td3.innerHTML = "<a href='javascript:Person.call(\""+ jsonobjs[y].mobile+ "\")'>"+ jsonobjs[y].mobile+ "</a>";
}
}
</script>
</head>
<!-- js代碼通過webView調用其插件中的java代碼 -->
<body onload="javascript:Person.getPersonList()">
<table border="0" width="100%" id="personTable" cellspacing="0">
<tr>
<td width="20%">編號</td><td width="40%" align="center">姓名</td><td align="center">電話</td>
</tr>
</table>
<a href="javascript:window.location.reload()">刷新</a>
</body>
</html>
② Android 界面排版
Android布局是應用界面開發的重要一環,在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" 這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算薯指比較麻煩。 AbsoluteLayout 可以讓子元素指定準確的x/y坐標值,並顯示在屏幕上。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。他是絕對坐標,所以在實際中不提倡使用。
相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:
相對於某一個元素
// 相對於給雀埋定ID控制項
android:layout_above 將該控制項的底部置於給定ID的控制項之上;
android:layout_below 將該控制項的底部置於給定ID的控制項之下;
android:layout_toLeftOf 將該控制項的右邊緣與給定ID的數歲配控制項左邊緣對齊;
android:layout_toRightOf 將該控制項的左邊緣與給定ID的控制項右邊緣對齊;
android:layout_alignBaseline 將該控制項的baseline與給定ID的baseline對齊;
android:layout_alignTop 將該控制項的頂部邊緣與給定ID的頂部邊緣對齊;
android:layout_alignBottom 將該控制項的底部邊緣與給定ID的底部邊緣對齊;
android:layout_alignLeft 將該控制項的左邊緣與給定ID的左邊緣對齊;
android:layout_alignRight 將該控制項的右邊緣與給定ID的右邊緣對齊;
// 相對於父組件
android:layout_alignParentTop 如果為true,將該控制項的頂部與其父控制項的頂部對齊;
android:layout_alignParentBottom 如果為true,將該控制項的底部與其父控制項的底部對齊;
android:layout_alignParentLeft 如果為true,將該控制項的左部與其父控制項的左部對齊;
android:layout_alignParentRight 如果為true,將該控制項的右部與其父控制項的右部對齊;
// 居中
android:layout_centerHorizontal 如果為true,將該控制項的置於水平居中;
android:layout_centerVertical 如果為true,將該控制項的置於垂直居中;
android:layout_centerInParent 如果為true,將該控制項的置於父控制項的中央;
// 指定移動像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;
example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = 「10px」
還可以指定邊距等,具體詳見API
五.TableLayout
表格布局類似Html裡面的Table。每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素,設定他的對齊方式 android:gravity="" 。
每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應用,做出美觀的界面。TableLayout 將子元素的位置分配到行或列中。一個TableLayout 由許多的TableRow 組成,每個TableRow 都會定義一個 row 。TableLayout 容器不會顯示row 、cloumns 或cell 的邊框線。每個 row 擁有0個或多個的cell ;和html中的table查不多少。在實際中也經常使用。
Android的Margin和Padding跟Html的是一樣的。通俗的理解 Padding 為內邊框,Margin 為外邊框
對應的屬性為
android:layout_marginBottom="25dip"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginRight="10dip"
android:paddingLeft="1dip"
android:paddingTop="1dip"
android:paddingRight="1dip"
android:paddingBottom="1dip"
如果左右上下都是相同的設置則可以直接設置
android:layout_margin="10dip"
android:padding="5dip"
過去,程序員通常以像素為單位設計計算機用戶界面。例如,定義一個寬度為300像素的表單欄位,列之間的間距為5個像素,圖標大小為16×16像素 等。這樣處理的問題在於,如果在一個每英寸點數(dpi)更高的新顯示器上運行該程序,則用戶界面會顯得很小。在有些情況下,用戶界面可能會小到難以看清 內容。
與解析度無關的度量單位可以解決這一問題。Android支持下列所有單位。
px(像素):屏幕上的點。
in(英寸):長度單位。
mm(毫米):長度單位。
pt(磅):1/72英寸。
dp(與密度無關的像素):一種基於屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。
dip:與dp相同,多用於android/ophone示例中。
sp(與刻度無關的像素):與dp類似,但是可以根據用戶的字體大小首選項進行縮放。
為了使用戶界面能夠在現在和將來的顯示器類型上正常顯示,建議大家始終使用sp作為文字大小的單位,將dip作為其他元素的單位。當然,也可以考慮使用矢量圖形,而不是用點陣圖.
dp是與密度無關,sp除了與密度無關外,還與scale無關。
如果屏幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。
那麼原來TextView的寬度設成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。
但如果設置成160dp或160sp的話。系統會自動將width屬性值設置成320px的。
也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據屏幕密度的變化自動進行轉換
③ 請介紹下Android中常用的五種布局,分別的布局方式。謝謝!急
LinearLayout,線性布局
RelativeLayout,相對布局
AbsoluteLayout,絕對布局
FrameLayout,幀布局
TableLayout,表格布局
BorderLayout,
BoxLayout,
CardLayout,
DefaultMenuLayout,
FlowLayout,
GridBagLayout,
GridLayout,
GroupLayout
swing里常用的也有這些,至於每個具體的功能你自己查一下API就可以了。
1、Java初步
Java是由sun公司開發的一種新型的面向物件的程式設計語言,主要用於web頁面的設計。
Java語言的發展頗具傳奇性,它與Inter的的迅猛發展是分不開的。由於其發展迅速,有人將它比喻為Inter上的世界語。前面講到在Inter上Web頁面的設計採用的是HTML語言,使用者藉助於Web瀏覽器(如Netscape,HotJava,IE等),可以訪問到遠端web伺服器上靜態的、具有超連結的Web頁面。Java語言的出現改變了 Web頁面的這種傳統的靜態模式,通過在Web頁面中附加一些利用Java編寫的App1et(稱為小程式),可飢型以使Web頁面更具多樣蠢空性和變化性,這樣使用者就能夠訪問到動態的,具有互動功能的web頁面。
例如一些小的動畫,實時更新的圖表、聲音等。總之,Web頁面的設計主要採用HTML語言,利用Java則使其錦上添花。
Sun公司於1995年5月正式推出Java語言,由於其簡單、高效、可移植性強等特點,一經推出,很快引起廣大使用者和眾多廠商的普遍關注,特別是Sum公司將其定位於Inter的應用開發上,使得Java得以迅速發展。在同期推出的還有被稱為HotJava(熱咖啡)的瀏覽器,Hotjava是一個完全由Java語言編寫,基於Java典型應用的web瀏覽器,並且第一個支援Java Applet。HotJava充分展示了Java在全球Inter網上的強大威力,同時也為Java語言程式設計提供了一個理想的執行平台。
Java語言推出後,各大軟體廠商相繼宣布支援Java。首先是Netscape公司在其Web瀏覽器(Netscape Navigator2.0)中支援Java,不久,sun,SGI和Macromedia三家公司制定了基於Java的開放式多媒體標准。後來許多公司,如IBM,Microsoft,Orac1e等,都宣布支援Java。Netscape公司進一步與sun公司合作,推出了類似於Java的JavaScript語言。目前,Sun公司已成立了專門的Javasoft分部,負責管理Java語言的開發、維護工作(可從Http:Javasoft,站點了解詳細資訊)。
對於Java這一名字,較為流行的說法是它來源於印度尼西亞的一個重要島嶼,該島嶼的中文譯名為"爪哇",島上盛產咖啡,於是sun公司的開發人員將這種新語言起名為Java,寓意是使其與熱氣騰騰的咖啡聯絡起來,將它奉獻給全球的計算機使用者。
2、Java語言的特點
Java語言的流行除了因為它能夠編制嵌入HTML檔案中的Applet外,還在於Java語言本身的面向物件、簡單、平台無關性、安全性、多執行緒等特點。Java語言的結構與編寫方式,與c++語言類似,因此學習Java語言,不僅要了解Java語言獨有的程式設計特點,同時還要有程式設計基礎和面向物件的概念。 <BR>Java語言的主要特點如下:
(1)簡單、高效
Java語言與C++類似,如果使用者了解C++和面向物件的概念,就可以很快編寫出Java程式;此外,Java又不同於諸如C++語言提供的各種各樣的方法,它只提供了基本的方法,這樣就減少了程式設計的復雜性,例如去掉了標頭檔案、指標變數、結構、運運算元過載、多重繼承等復雜特性。Java語言雖然簡單,卻很高效,它可以用面向物件的方法來描述使用者的每一個動作。
(2)面向物件
Java語言是一種新的面向物件的程式設計語言,它除了幾種基本的資料型別外,大都是類似c++中的物件和方法,程式程式碼大多體現了類機制,以類的形式帶肢瞎組織,由類來定義物件的各種行為。Java同樣支援類繼承,這樣也減少了程式設計的復雜性。
(3)平台無關性 Java語言經編譯後生成與計算機硬體結構無關的位元組程式碼(Bytecode),這些位元組程式碼被定義為不依賴任何硬體平台和作業系統。當Java程式在執行時,需要由一個解釋程式對生成的位元組程式碼解釋執行。這體現了Java語言的與平台無關性,使得Java程式可以在任何平台上執行,如MS-DOS,Windows,Unix等,因此具有很強的移植性。
(4)互動式特性
Java是面向物件的網路程式語言,由於它支援TCP/IP協議,使得使用者可以通過瀏覽器訪問到Inter上的各種動態物件。並且在網路上使用者可以互動式地進行各種動作,而多執行緒技術的引入使得這種互動式操作更為容易。
(5)多執行緒機制
Java語言支援多執行緒機制,多執行緒機制使得Java程式能夠並行處理多項任務。Java程式可以設計成具有多個執行緒,例如讓一個執行緒負責資料的檢索、查尋,另一個執行緒與使用者進行互動,這樣,兩個執行緒得以並行執行。多執行緒機制可以很容易地實現網路上的互動式操作。
(6)動態的記憶體管理機制
Java語言採用了自動垃圾回收機制進行記憶體的管理。在C++語言中,程式設計師在編寫程式時要仔細地處理記憶體的使用,例如當某個記憶體快使用完畢時,要及時釋放,以供其它程式使用,一旦記憶體管理不當,就有可能造成記憶體空間浪費或程式執行故障。 <BR>在Java系統中包括了一個自動垃圾回收程式,它可以自動、安全地回收不再使用的記憶體塊,這樣,程式設計師在程式設計時就無需擔心記憶體的管理問題,從而使Java程式的編寫變得簡單,同時也減少了記憶體管理方面出錯的可能性。
(7)安全性
在類似Inter的這種分散式網路環境中,安全性是個不容忽視的問題。Java語言在安全性方面引入了實時記憶體分配及布局來防止程式設計師直接修改實體記憶體布局;通過位元組程式碼驗證器對位元組程式碼的檢驗,以防止網路病毒及其它非法程式碼侵入。此外,Java語言還採用了許多面向物件的異常處理機制,負責對一些異常事件進行處理,如記憶體空間不夠,程式異常中止等的處理。 <BR>以上介紹了Java語言的一些主要特點,除此之外它還具有動態性、類庫豐富、高效能等特點,這些都使得Java語言在各個方面得以成熟和完善,成為大眾日益青睞的程式設計語言之一。
3、Java應用程式和Java AppletJava語言是一種面向物件的程式設計語言,利用Java語言,能夠編寫出兩大類程式:Java應用程式(Application)和Java App1et(小程式):
Java應用程式是由Java語言編寫,在經過編譯和解釋後,可以獨立執行在MS-DOS,UNIX等操作平台上。Java應用程式一般以命令列方式執行。
Java Applet是不能獨立執行的,App1et必須嵌入到HTML檔案中,並且需要啟動瀏覽器才能執行。這樣,指定的Applet會自動下載到使用者的瀏覽器中執行,從而產生一些特殊的頁面效果,如動畫、聲音、圖表、影象等。通過在Web頁面中嵌入Applet,可以使Web頁面與使用者之間進行動態互動,例如接收使用者的輸入,然後根據使用者的需要產生不同的響應。
就Java Applet而言,它是嵌入到HTML檔案中的,HTML檔案呈現的內容大多為文字、圖片、表格、聲音等,但這些內容一般都是靜態的、二維的。但當HTML檔案中嵌有 Applet後,整個頁面會呈現出多樣性和變化性,例如互動功能、圖表等。在運用方面Java語言和HTML語言的區別在於:
(1)HTML語言屬於一種簡單的標記語言,一般使用者均可在數小時內學會如何編寫HTML檔案。而Java語言的結構和編寫方法更類似於c++,所以學習Java語言要有程式設計的基礎和面向物件的概念。
(2)Web頁面的編寫主要採用HTML語言,但若想使頁面更具變化性、多樣性、互動性,可採用Java語言來達到這種效果,起到錦上添花的作用。
4、在HTML檔案中嵌入Applet</FONT> <BR>Applet是Java在Inter的中的一個重要應用,同時它的出現也促使了Java成為日益流行的程式設計語言。Applet是指由Java語言編寫的,被嵌入到Web頁面中,並通過瀏覽器執行以產生特殊頁面效果的小程式。嵌入了Applet的Web頁面看上去會更加豐富多彩,具有動態互動能力。
在Inter上擁有大量的App1et,這些Applet大都是由Sun等公司的Java開發人員設計出來的,對於廣大使用者,特別是初學者,可以將這些App1et下載到自己的計算機中,井通過將這些下載下來的App1et嵌入到自己的Web頁面中來,獲得自己具有相同效果的Web頁面,以豐富自己的頁面內容。
Android的常見布局方法:線性布局、表格布局、相對布局、幀布局和巢狀布局;
好的,糾結了幾天了,換了各種版本的eclipse,那什麼版本以下預設的是線性布局的呢 檢視原帖>>
線性布局LinearLayout 表格布局TableLayout 幀布局Framelayout 相對布局RelativeLayout 絕對布局AbsoluteLayout
android4.0版本後新增的GridLayout
你在網路搜索 「css+div的布局方式,比table的布局方式」 就會有很多關於這個問題答案,你可以看看,雖然都有優缺點,但是建議還是改用div+css吧,table已經過時了
:codesky./article/201008/139693.
希望可以幫到你
KIKC自2013年創立以來,在幾年內已經擴張600多個店鋪,預計將在2018年實現1000個店鋪的全面布局,其發展速度堪稱業界奇跡。
借用網路一句話:響應式布局是Ethan Marcotte在2010年5月份提出的一個概念,簡而言之,就是一個網站能夠相容多個終端——而不是為每個終端做一個特定的版本。這個概念是為解決移動網際網路瀏覽而誕生的。
響應式布局就是可以,適應多種裝置的網頁,比如電腦端和移動端 可以共用同一套CSS。不需要為單獨的裝置而開發相應程式
浮動布局,定位布局以及響應式布局,這三種布局是最基本最常見的,此外比較特殊的是彈性布局,彈性布局相對使用較少,需要根據專案的具體情況而定。
在網站開發當中,通常是需要結合多種布局去實現網頁布局的。如果是在學習網頁布局的相關知識,可以弄本 HTML5布局之路 ,來輔助自己的學習
④ android設計界面時控制項有多種排列方法,其中常用布局方式有
在android中我們常用的布局方式有這么幾種:LinearLayout (線性布局),RelativeLayout (相對布局),TableLayout (表格布局),AbsoluteLayout (絕對布局),FrameLayout (幀布局)。LinearLayout 和 RelativeLayout 應該又是其中用的較多的兩種。AbsoluteLayout 比較少用(我自己還沒用過),因為它是按屏幕的絕對位置來布局的如果屏幕大小發生改變的話控制項的位置也發生了改變。這個就相當於HTML中的絕對布局一樣,一般不推薦使用。LinearLayout 顧名思義就是一條條的將控制項布置下去,線性布局分為水平線性和垂直線性二者的屬性分別為
android:orientation="horizontal" android:orientation="vertical" 。xmlns:android="http://schemas.android.com/apk/res/android" 很多人對這個感到困惑,其實它就是一個命名空間。RelativeLayout 相對布局。裡面的每個控制項之間的關系都是相對的。如果不設置相對關系的話默認擺放在屏幕左上角。重要屬性如下:
android:layout_toRightOf="@id/city" :與id為city的控制項的右邊對齊。
android:layout_alignTop="@id/city" : 與id為city的控制項的頂部對齊。
給出示意圖如下所示:
android:layout_width="fill_parent" android:layout_height="wrap_content" 我一般在線性布局裡面套相對布局,這時候需要注意上面兩個屬性相對布局的寬度可以設置為填充父控制項,但是高度一般不要設置為填充父控制項因為這樣的話我想在相對布局外面在放控制項就沒有效果了因為屏幕已經被相對布局全部占據。
不管是用什麼布局,寬度與高度這兩個屬性一定要弄清楚剛開始的時候我經常會發現有些控制項沒顯示在界面上或者占據了整個屏幕,一檢查原來是這里設置錯了。還有不要忘記這兩個屬性在一般控制項中都是不可或缺的,忘記設置的話就會報錯。
⑤ android的界面布局方式有哪些
一、界面布局之線性布局(LinearLayout)
這種布局比較常用,也比較簡單,就是每個元素佔一行,把它按照橫向排放,也就是每個元素佔一列。在布局中都按照垂直或者水平的順序依次排列子元素,每一個子元素都位於前一個元素之後。
二、界面布局之相對布局(RelativeLayout)
相對布局是android界面設計中比較常用和好用的一個布局方式。
三、界面布局之表格布局(TableLayout)
表格布局採用行、列的形式來管理元素組件。TableLayout的行和列不需要聲明,而是採用添加方法控制。
每次在TableLayout中添加一個TableRow,一個TableRow就代表表格中的一行,也同樣是容器,往裡面添加一個子組件就代表增加一列。在表格布局中,列的寬度由最寬的那個單元格決定,整個表格布局寬度取決於父容器的寬度
四、界面布局之絕對布局(AbsoluteLayout)
特點:以坐標的方式來定位在屏幕上的位置,引起缺乏靈活性,在沒有絕對定位的情況下相比其他類型的布局更難維護
五、界面布局之幀布局(FrameLayout)
FrameLayout是五大布局中最簡單的一個布局。在幀布局中,整個界面被當成一塊空白備用區域,所有的子元素都不能被指定放置的位置,它們統統放於這塊區域的左上角,並且後面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。
轉自長沙軟體公司---小房子
⑥ Android線性布局和表格布局及其相對布局 都適用於哪些場景
線性布局適用於控制項呈線性排列場景(一個接著一個),此線性可以為橫向的線性與縱向的線性。
表格布局適用於控制項呈表格狀分布,如m行n列,像HTML中的表單。
相對布局適用於另一控制項或父控制項,如在某個控制項的左(右、上、下、中線對齊)或相對於父控制項左(右、上、下、中線對齊)。
布局是可以互相嵌套的,如父控制項(容器)是線性縱向布局,第一個子布局為相對,第二個是表格,第三個是線性...
Android布局的概念是從Swing及HTML的布局引申而來,與他們的排版都非常相似。
Android中還有一種絕對布局,與HTML中的DIV也非常相似,都是以絕對坐標定位的方式定位控制項,但這種布局難以匹配Android不同的屏幕尺寸及不同解析度,所以使用很少。