基于安卓平臺的程序設計:Android用戶界面1_第1頁
基于安卓平臺的程序設計:Android用戶界面1_第2頁
基于安卓平臺的程序設計:Android用戶界面1_第3頁
基于安卓平臺的程序設計:Android用戶界面1_第4頁
基于安卓平臺的程序設計:Android用戶界面1_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Android用戶界面(1)1 用戶界面基礎用戶界面(User Interface,UI)是系統和用戶之間進行信息交換的媒介,實現信息的內部形式與人類可以接受形式之間的轉換在計算機出現早期,批處理界面(1945-1968)和命令行界面(1969-1983)得到廣泛的使用目前,流行圖像用戶界面(Graphical User Interface,GUI),采用圖形方式與用戶進行交互的界面未來的用戶界面將更多的運用虛擬現實技術,使用戶能夠擺脫鍵盤與鼠標的交互方式,而通過動作、語言,甚至是腦電波來控制計算機1 用戶界面基礎設計手機用戶界面應解決的問題需要界面設計與程序邏輯完全分離,這樣不僅有利于他們的

2、并行開發,而且在后期修改界面時,也不用再次修改程序的邏輯代碼根據不同型號手機的屏幕解析度、尺寸和縱橫比各不相同,自動調整界面上部分控件的位置和尺寸,避免因為屏幕信息的變化而出現顯示錯誤能夠合理利用較小的屏幕顯示空間,構造出符合人機交互規律的用戶界面,避免出現凌亂、擁擠的用戶界面Android已經解決了前兩個問題,使用XML文件描述用戶界面;資源資源文件獨立保存在資源文件夾中;對界用戶面描述非常靈活,允許不明確定義界面元素的位置和尺寸,僅聲明界面元素的相對位置和粗略尺寸1 用戶界面基礎Android提供兩種方式控制界面組件的外觀和行為在XML 布局文件中通過XML屬性進行控制 1 用戶界面基礎對

3、應的 string.xml: ActivityLifeCycle hello,world! Settings1 用戶界面基礎在Java程序里通過相應組件的方法控制組件外觀和行為public class ActivityLifeCycle extends Activity TextView txt; Button bt ;public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); txt = (TextView)findView

4、ById(R.id.txtHello); bt = (Button) findViewById(R.id.btModify); bt.setOnClickListener(new Button.OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubtxt.setText(Modified); );1 用戶界面基礎Android用戶界面框架Android用戶界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型提供了處理

5、用戶輸入的控制器(Controller)顯示用戶界面和圖像的視圖(View),以及保存數據和代碼的模型(Model)1 用戶界面基礎Android用戶界面框架MVC模型MVC模型中的控制器能夠接受并響應程序的外部動作,如按鍵動作或觸摸屏動作等控制器使用隊列處理外部動作,每個外部動作作為一個獨立的事件被加入隊列中,然后Android用戶界面框架按照“先進先出”的規則從隊列中獲取事件,并將這個事件分配給所對應的事件處理函數1 用戶界面基礎Android用戶界面框架單線程用戶界面在單線程用戶界面中,控制器從隊列中獲取事件和視圖在屏幕上繪制用戶界面,使用的都是同一個線程特點:處理函數具有順序性,能夠降

6、低應用程序的復雜程度,同時也能減低開發的難度缺點:如果事件處理函數過于復雜,可能會導致用戶界面失去響應Android中,不允許創建界面的線程以外的其他線程對界面進行操作。1 用戶界面基礎Android用戶界面框架Android用戶界面框架(Android UI Framework)采用視圖樹(View Tree)模型Android用戶界面框架中的界面元素以一種樹型結構組織在一起,稱為視圖樹Android系統會依據視圖樹的結構從上至下繪制每一個界面元素。每個元素負責對自身的繪制,如果元素包含子元素,該元素會通知其下所有子元素進行繪制1 用戶界面基礎Android用戶界面框架視圖樹視圖樹由View

7、和ViewGroup構成View是界面的最基本的可視單元,存儲了屏幕上特定矩形區域內所顯示內容的數據結構,并能夠實現所占據區域的界面繪制、焦點變化、用戶輸入和界面事件處理等功能View也是一個重要的基類,所有在界面上的可見元素都是View的子類ViewGroup是一種能夠承載含多個View的顯示單元ViewGroup功能:一個是承載界面布局,另一個是承載具有原子特性的重構模塊1 用戶界面基礎View 以及由View 派生的界面組件,有大量xml屬性以及相應方法,用于控制其外觀和行為。以View為例:(P38)(在xml文件中,屬性均以android:開頭,如:android:backgroun

8、dXML屬性相應方法說明backgroundsetBackgroundResource(int)設置背景色idfindViewById(int id)idlayout_gravity對齊方式layout_height高度layout_margin邊距留空visibilitysetVisibility(int)可見性2 常用的組件xml屬性及其取值layout_height, layout_width控制組件的高和寬取值(放在 “”中):wrap_content:高度或寬度正好包住其內容(比如文字)match_parent (fill_parent):高度或寬度和父容器一樣40dp: 40個dp

9、2 常用的組件xml屬性及其取值layout_gravity : 指明組件在父容器中的相對位置gravity : 指明本組件文字在組件中的位置這兩個屬性的取值:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。而且這些屬性是可以多選的,用“|”分開。默認這個的值是:Gravity.LEFT例如: android:gravity=top|center參看:/ghj1976/archive/2011/04/26/2029535

10、.html2 常用的組件xml屬性及其取值更常用的做法是使得以下值為 true 來設置組件在父容器中的位置:android:layout_alignParentLeft=“true” 左對齊android:layout_alignParentRight=“true” 右對齊android:layout_alignParentTop=“true” 上對齊android:layout_alignParentBottom=“true” 下對齊android:layout_centerVertical=“true” 垂直居中android:layout_centerHorizontal=true 水平

11、居中2 常用的組件xml屬性及其取值為組件指定上下左右的邊距(到其他組件的距離)android:layout_marginBottom=60dp“android:layout_marginLeft=60dp“android:layout_marginTop=60dp“android:layout_marginRight=60dp“對應的方法為:setMargins(int,int,int,int)3 用代碼控制界面的示例(P41)public class CodeView extends Activity public void onCreate(Bundle savedInstanceSta

12、te)super.onCreate(savedInstanceState);/創建一個線性布局管理器LinearLayout layout = new LinearLayout(this);/設置該Activity顯示layoutsuper.setContentView(layout);layout.setOrientation(LinearLayout.VERTICAL);/創建一個TextViewfinal TextView show = new TextView(this);/創建一個按鈕Button bn = new Button(this);bn.setText(R.string.o

13、k); bn.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);/向Layout容器中添加TextViewlayout.addView(show);/向Layout容器中添加按鈕layout.addView(bn); /為按鈕綁定一個事件監聽器bn.setOnClickListener(new OnClickListener()Overridepublic void onClick(View v) show.setText(Hello , Android , + new java.util.Date(););關于LayoutParams的用法: /s/blog_821e2bb10100tarl.html4 XML和代碼混合控制界面的示例(P42)5 開發自定義View(P44)public class DrawView extends Viewpublic float currentX = 40;public float currentY = 50;/* * param context */public DrawView(Context context)super(context);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論