自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android開發(fā)速成簡(jiǎn)潔教程六:用戶界面設(shè)計(jì)

移動(dòng)開發(fā) Android
Activity是Android應(yīng)用用戶界面的基本組成部件。但Activity本身并不提供用戶界面(User Interface)。從程序結(jié)構(gòu)層次上來說,一個(gè)Android應(yīng)用是類android.app.Application的一個(gè)實(shí)例, Application中可以包含多個(gè)android.app.Activity實(shí)例。

Activity是Android應(yīng)用用戶界面的基本組成部件。但Activity本身并不提供用戶界面(User Interface)。從程序結(jié)構(gòu)層次上來說,一個(gè)Android應(yīng)用是類android.app.Application的一個(gè)實(shí)例, Application中可以包含多個(gè)android.app.Activity實(shí)例。每個(gè)Activity 帶一個(gè)Window類,這個(gè)類在Android平臺(tái)上沒有提供太多功能,主要可以用來控制標(biāo)題欄(屏幕頂端)。比如設(shè)置UI全屏顯示可以使用如下代碼:

  1. requestWindowFeature(Window.FEATURE_NO_TITLE);    
  2. indow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,     
  3. WindowManager.LayoutParams.FLAG_FULLSCREEN);  

Activty缺省是不含用戶界面,如需顯示用戶界面,則可以調(diào)用setContentView()來設(shè)置Activity的ContentView。 ConentView描述了具體的UI組件,如文本框,標(biāo)簽,列表框,圖片框的。

Android的用戶界面其實(shí)就是指ContentView的設(shè)計(jì)。“View”開始會(huì)使人產(chǎn)生誤解,在其它平臺(tái)“View”一般指類似Form的 概念。而在Android平臺(tái)上View是UI組件,相當(dāng)于其他平臺(tái)的Component,ViewGroup相當(dāng)于其它平臺(tái)的Container,如下 圖所示:

有了這個(gè)對(duì)應(yīng)關(guān)系就很容易將你已有的用戶界面設(shè)計(jì)知識(shí)用在Android的用戶界面設(shè)計(jì)上來。

此外Android用戶界面設(shè)計(jì)一個(gè)推薦的方法是使用XML來描述UI,這也不是Android平臺(tái)的首創(chuàng),Java ME Polish,WPF,Silverlight等都采用XML來描述UI,使用XML來描述的好處是將用戶界面和程序邏輯分開,可以做到用戶界面的改變不 影響程序邏輯,程序邏輯的變動(dòng)也可以不影響用戶界面,實(shí)際上是采用了MVC模式的設(shè)計(jì)。Activity 是MVC中的Controller,Activity的ContentView則是MVC中的View。如果你不想使用XML來描述UI,也可以使用代碼 來創(chuàng)建UI,不過這種方法既麻煩,也增加了模塊之間的耦合度。

理解了Android的View和ViewGroup之后,具體設(shè)計(jì)用戶界面并不復(fù)雜,一般來說ViewGroup定義它的子View的布局 Layout,也就是其它View (文本框,標(biāo)簽等控件或是其它ViewGroup)在用戶界面的位置安排。如上圖所示,這個(gè)層次關(guān)系可以嵌套。通過嵌套,你可以定義出任意用戶界面。

Android中的基本布局如下:

FrameLayout

 最簡(jiǎn)單的布局對(duì)象

 在屏幕上故意保留的空白空間,你可以之后填充一個(gè)單獨(dú)的對(duì)象

 例如:一個(gè)你要更換的圖片

 所有子元素都釘?shù)狡聊坏淖笊辖?/p>

 不能為子元素指定位置

LinearLayout

 在一個(gè)方向上(垂直或水平)對(duì)齊所有子元素

 所有子元素一個(gè)跟一個(gè)地堆放

 一個(gè)垂直列表每行將只有一個(gè)子元素(無論它們有多寬)

 一個(gè)水平列表只是一列的高度(***子元素的高度來填充)

TableLayout

 把子元素放入到行與列中

 不顯示行、列或是單元格邊界線

 單元格不能橫跨行,如HTML 中一樣

AbsoluteLayout

 使子元素能夠指明確切的X / Y 坐標(biāo)顯示在屏幕上

 (0,0)是左上角

 當(dāng)你下移或右移時(shí),坐標(biāo)值增加

 允許元素重疊(但是不推薦)

 注意:

 一般建議不使用AbsoluteLayout 除非你有很好的理由來使用它

 因?yàn)樗喈?dāng)嚴(yán)格并且在不同的設(shè)備顯示中不能很好地工作

RelativeLayout

 讓子元素指定它們相對(duì)于其他元素的位置(通過ID 來指定)或相對(duì)于父布局對(duì)象

如果不喜歡Eclipse IDE自帶的UI設(shè)計(jì)工具,可以使用免費(fèi)Android UI設(shè)計(jì)軟件DroidDraw,下載DroidDraw。

Android SDK的 ApiDemo中也介紹Android提供的各個(gè)UI組件(Menu,Dialog,TextView,Button,List等以及各個(gè)Layout)的用法。這里就不一一介紹了。

責(zé)任編輯:閆佳明 來源: imobilebbs
相關(guān)推薦

2013-12-26 15:10:08

Android開發(fā)應(yīng)用和框架Linux 內(nèi)核

2013-12-26 15:43:07

Android開發(fā)Android應(yīng)用Activities

2013-12-26 15:18:09

Android開發(fā)安裝開發(fā)環(huán)境

2011-04-19 09:19:37

相對(duì)布局界面設(shè)計(jì)Android

2011-04-11 17:25:30

線性布局用戶界面設(shè)計(jì)Android

2011-04-11 17:07:33

布局基礎(chǔ)用戶界面設(shè)計(jì)Android

2011-04-08 13:58:10

Android界面設(shè)計(jì)

2011-05-19 08:49:01

使用片段界面設(shè)計(jì)Android

2011-04-22 11:01:36

框架布局界面設(shè)計(jì)Android

2013-12-27 14:05:22

Android開發(fā)Android應(yīng)用Dialog

2013-12-27 14:16:43

Android開發(fā)Android應(yīng)用線程

2013-12-27 14:34:46

Android開發(fā)Android應(yīng)用短信觸發(fā)示例

2011-06-01 10:58:57

2013-12-27 13:27:05

Android開發(fā)Android應(yīng)用RadioButton

2013-12-27 16:06:10

Android開發(fā)Android應(yīng)用發(fā)布應(yīng)用

2013-12-26 15:34:19

Android開發(fā)Android應(yīng)用基本概念

2013-12-26 16:59:12

Android開發(fā)Android應(yīng)用數(shù)據(jù)綁定Data Bi

2013-12-27 13:49:22

Android開發(fā)Android應(yīng)用Button

2013-12-27 12:51:44

Android開發(fā)Android應(yīng)用引路蜂

2013-12-26 16:24:13

Android開發(fā)Android應(yīng)用Intents
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)