Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> AndroidUI設計

AndroidUI設計

編輯:關於Android編程


Android應用程序的界面設計有兩種方法:



1.代碼設計:界面描述信息都在Activity類中,不用去配置資源文件。雖然這種方法方便快速,但是當排版變動後可能導致代碼大幅度變動。

2.XML文件設計

一、XML文件設計

在新建的Android工程中,DocumentManagementSystem.java文件中包含了建立、顯示和運行這個應用所必須的代碼。具體如下:

package myjava.hxq;

import android.app.Activity;

import android.os.Bundle;

public class DocumentManagementSystem extends Activity {

//每一個Activity都要繼承Activity類

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//表示選擇了res/layout/main.xml這個配置文件所表示的界面布局

}

}

所以用XML設計界面,其實就是設計main.xml文件。該文件由系統自動創建後如下:

"1.0" encoding="utf-8"?>

http://schemas.android.com/apk/res/android

//聲明命名空間

android:orientation="vertical"

//該屬性聲明View的方向,Vertical表示是豎的,垂直的

android:layout_width="fill_parent"

//該屬性聲明View要占屏幕的寬度,其中,fill_parent表示填滿屏幕

android:layout_height="fill_parent"

//該屬性聲明View要占屏幕的高度,其中,fill_parent表示填滿屏幕

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="歡迎使用文獻管理系統"

//聲明TestView包含的文字。將要顯示的字符填入雙引號內即可顯示

/>

注:紅色字體的文字為批注。

上面的代碼是一個垂直的LinearLayout布局,它包含一個TextView。用XML描述完布局後,將該XML文件保存到本工程的res/layout/路徑下,然後就可以編譯了。

二、代碼設計

package myjava.hxq;

import android.app.Activity;

import android.os.Bundle;

import android.widget.LinearLayout;

import android.widget.TextView;

public class DocumentManagementSystem extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout ll = new LinearLayout(this);

TextView tv = new TextView(this);

//對TextView界面UI組件進行構造;

ll.addView(tv);

tv.setText(“歡迎進入文獻管理系統”);

//設定要顯示的文字

setContentView(ll);

//將TextView控件顯示在手機屏幕上

}

}

Activity的setContentView()指令,是Android系統將View關聯到Android的手機界面。否則,什麼也不能顯示,只能是空白的屏幕。


三、Android用戶界面(UI)組件

Android SDK提供了一套完善的界面設計功能,包括豐富的組件。如果還不滿意,還可以進行相應的擴展。

1.屏幕元素的層次

android.app.Activity類的實例是最基本的功能單元。雖然此實例可以實現很多功能,但是自身卻無法顯示在屏幕上。此時,就要借助視圖組(Viewgroup)和視圖(View),這兩個才是Android平台最基本的用戶界面表達單元。

a) 視圖

它是基類android.view.View的一個實例,是一個存儲有屏幕上特定的矩形內布局和內容屬性的數據結構。也是Widgets(窗體部件)的基類,Widgets是由視圖類派生出的一組子類的集合,可以繪制屏幕交互元素。使用Widgets可以更快速的常見用戶界面。

每個視圖都有一個整型值的ID屬性,通過ID屬性在布局結構樹種唯一的表示該視圖。在XML標簽中,id語法如下:

Android:id = “@+id/my_button”;

其中,@的作用是通知XML解析器,解析並展開ID字符串後面其余的部分,將其作為ID資源。符號+ 表示這是一個新的資源,必須先創建它。當應用Android資源時就不必加+了,但必須加上Android包名字空間。如android:id = “@android:id/empty”;

b) 視圖組

它是基類android.view.Viewgroup的一個實例。可以裝載和管理一組下層的視圖和視圖組。使用視圖組可以為界面增加結構,創建復雜的界面元素,並可把整體看做一個單一的實體。視圖組是布局的基類,布局時視圖組的一組子類,提供了通用的屏幕布局。

c) 用戶界面的樹形結構

往往用樹形結構的視圖和視圖樹來定義一個活動的用戶界面。可以使用活動的setContentView()方法將這個結構樹與屏幕關聯,並把結構樹根節點上對象的引用作為函數的參數。Android系統獲得根節點對象的引用後,就可以直接與根節點對象協作來測量、繪制結構樹或使結構樹失效。當一個活動被激活並獲得焦點時,系統會通知該活動,並要求根節點度量、繪制結構樹。然後,根節點要求他的子節點繪制自己。同樣,結構樹中的每一個視圖組節點都負責繪制他們的直接子節點。

2.界面布局(layout)設計

界面布局為活動構造了用戶界面的結構,包含展現給用戶的所有組件及各組件之間的結構。有兩種實現方法:用XML聲明用戶界面的組件或者在應用程序運行時實例化布局。很方便的是,Android框架允許同時使用上述兩種方法設計和管理應用程序用戶界面。當然,用XML定義UI可以更好的把應用程序界面的展現部分和行為控制代碼分割開。

每個布局文件都要明確的包含一個根元素,且此根元素必須為View或Viewgroup對象。其它布局對象或組件可以作為根元素的子元素加入這個定義了整個布局的視圖層次結構中。

創建布局時為視圖對象定義ID很重要。ID不必再整個布局結構樹中唯一,但是在搜索范圍內ID必須唯一。

u Layout Paramenters

XML布局屬性Layout_名字,為視圖定義布局參數。含有定義子元素位置和尺寸的屬性類型。

u Layout Positon

視圖是一個矩形,位置用左上點的坐標、高度和寬度表示,都用像素為單位。調用getLeft()和getTop()可以獲得視圖矩形的X坐標、Y坐標,都是相對於其父節點而言的。getRight(),getBotton()同理。

u Size、Padding和Margins

基准寬度和基准高度:定義一個視圖期望多大;可以通過調用getMeasuredWidth()和getMeasuredHeight()方法得到這兩個值。

實繪寬度和實繪高度:定義視圖在屏幕上的實際尺寸;可以通過調用getWidth()和getHeight()方法得到這兩個值。

3.通用布局對象

常用的布局有FrameLayout、LinearLayout、TableLayout、AbsoluteLayout和RelativeLayout,它們都是視圖組的子類。

FrameLayout是一個最簡單的布局對象。它被定制為屏幕上的一個可以填充單一對象的空白備用區域。後一個子元素直接將前一個子元素進行覆蓋填充,將部分或全部擋住。LinearLayout用設置好的垂直或水平的屬性值對子元素進行排列。一個垂直列表的每一行只占有一個元素。TableLayout將子元素的位置分配到行或列中。每個TableLayout由許多TableRow組成,而每個TableRow都會定義一個row。AbsoluteLayout可以讓子元素制定准確的x/y坐標值,並顯示在屏幕上。(0,0)為左上角。RelativeLayout允許子元素制定它們相對於其他元素或父元素的位置。

4.數據綁定

有些View groups會有UI。這些對象通常是AdapterView類的子類,例如包括圖庫和列表視圖,他們共同的職責如下:填充布局數據和處理用戶操作。

前者通常是把這個類綁定到一個Adapter完成,Adapter從某個地方獲得它的數據,或者是代碼提供的一個列表,或者是來自設備數據庫的查詢結果。Android通過設置類AdapterView.OnltemClickListener成員到一個監聽者並捕獲用戶的操作事件,來處理用戶的操作。


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved