版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Android用戶界面(1)1 用戶界面基礎(chǔ)用戶界面(User Interface,UI)是系統(tǒng)和用戶之間進(jìn)行信息交換的媒介,實現(xiàn)信息的內(nèi)部形式與人類可以接受形式之間的轉(zhuǎn)換在計算機(jī)出現(xiàn)早期,批處理界面(1945-1968)和命令行界面(1969-1983)得到廣泛的使用目前,流行圖像用戶界面(Graphical User Interface,GUI),采用圖形方式與用戶進(jìn)行交互的界面未來的用戶界面將更多的運(yùn)用虛擬現(xiàn)實技術(shù),使用戶能夠擺脫鍵盤與鼠標(biāo)的交互方式,而通過動作、語言,甚至是腦電波來控制計算機(jī)1 用戶界面基礎(chǔ)設(shè)計手機(jī)用戶界面應(yīng)解決的問題需要界面設(shè)計與程序邏輯完全分離,這樣不僅有利于他們的
2、并行開發(fā),而且在后期修改界面時,也不用再次修改程序的邏輯代碼根據(jù)不同型號手機(jī)的屏幕解析度、尺寸和縱橫比各不相同,自動調(diào)整界面上部分控件的位置和尺寸,避免因為屏幕信息的變化而出現(xiàn)顯示錯誤能夠合理利用較小的屏幕顯示空間,構(gòu)造出符合人機(jī)交互規(guī)律的用戶界面,避免出現(xiàn)凌亂、擁擠的用戶界面Android已經(jīng)解決了前兩個問題,使用XML文件描述用戶界面;資源資源文件獨(dú)立保存在資源文件夾中;對界用戶面描述非常靈活,允許不明確定義界面元素的位置和尺寸,僅聲明界面元素的相對位置和粗略尺寸1 用戶界面基礎(chǔ)Android提供兩種方式控制界面組件的外觀和行為在XML 布局文件中通過XML屬性進(jìn)行控制 1 用戶界面基礎(chǔ)對
3、應(yīng)的 string.xml: ActivityLifeCycle hello,world! Settings1 用戶界面基礎(chǔ)在Java程序里通過相應(yīng)組件的方法控制組件外觀和行為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 用戶界面基礎(chǔ)Android用戶界面框架Android用戶界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型提供了處理
5、用戶輸入的控制器(Controller)顯示用戶界面和圖像的視圖(View),以及保存數(shù)據(jù)和代碼的模型(Model)1 用戶界面基礎(chǔ)Android用戶界面框架MVC模型MVC模型中的控制器能夠接受并響應(yīng)程序的外部動作,如按鍵動作或觸摸屏動作等控制器使用隊列處理外部動作,每個外部動作作為一個獨(dú)立的事件被加入隊列中,然后Android用戶界面框架按照“先進(jìn)先出”的規(guī)則從隊列中獲取事件,并將這個事件分配給所對應(yīng)的事件處理函數(shù)1 用戶界面基礎(chǔ)Android用戶界面框架單線程用戶界面在單線程用戶界面中,控制器從隊列中獲取事件和視圖在屏幕上繪制用戶界面,使用的都是同一個線程特點(diǎn):處理函數(shù)具有順序性,能夠降
6、低應(yīng)用程序的復(fù)雜程度,同時也能減低開發(fā)的難度缺點(diǎn):如果事件處理函數(shù)過于復(fù)雜,可能會導(dǎo)致用戶界面失去響應(yīng)Android中,不允許創(chuàng)建界面的線程以外的其他線程對界面進(jìn)行操作。1 用戶界面基礎(chǔ)Android用戶界面框架Android用戶界面框架(Android UI Framework)采用視圖樹(View Tree)模型Android用戶界面框架中的界面元素以一種樹型結(jié)構(gòu)組織在一起,稱為視圖樹Android系統(tǒng)會依據(jù)視圖樹的結(jié)構(gòu)從上至下繪制每一個界面元素。每個元素負(fù)責(zé)對自身的繪制,如果元素包含子元素,該元素會通知其下所有子元素進(jìn)行繪制1 用戶界面基礎(chǔ)Android用戶界面框架視圖樹視圖樹由View
7、和ViewGroup構(gòu)成View是界面的最基本的可視單元,存儲了屏幕上特定矩形區(qū)域內(nèi)所顯示內(nèi)容的數(shù)據(jù)結(jié)構(gòu),并能夠?qū)崿F(xiàn)所占據(jù)區(qū)域的界面繪制、焦點(diǎn)變化、用戶輸入和界面事件處理等功能View也是一個重要的基類,所有在界面上的可見元素都是View的子類ViewGroup是一種能夠承載含多個View的顯示單元ViewGroup功能:一個是承載界面布局,另一個是承載具有原子特性的重構(gòu)模塊1 用戶界面基礎(chǔ)View 以及由View 派生的界面組件,有大量xml屬性以及相應(yīng)方法,用于控制其外觀和行為。以View為例:(P38)(在xml文件中,屬性均以android:開頭,如:android:backgroun
8、dXML屬性相應(yīng)方法說明backgroundsetBackgroundResource(int)設(shè)置背景色idfindViewById(int id)idlayout_gravity對齊方式layout_height高度layout_margin邊距留空visibilitysetVisibility(int)可見性2 常用的組件xml屬性及其取值layout_height, layout_width控制組件的高和寬取值(放在 “”中):wrap_content:高度或?qū)挾日冒∑鋬?nèi)容(比如文字)match_parent (fill_parent):高度或?qū)挾群透溉萜饕粯?0dp: 40個dp
9、2 常用的組件xml屬性及其取值layout_gravity : 指明組件在父容器中的相對位置gravity : 指明本組件文字在組件中的位置這兩個屬性的取值:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。而且這些屬性是可以多選的,用“|”分開。默認(rèn)這個的值是:Gravity.LEFT例如: android:gravity=top|center參看:/ghj1976/archive/2011/04/26/2029535
10、.html2 常用的組件xml屬性及其取值更常用的做法是使得以下值為 true 來設(shè)置組件在父容器中的位置: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“對應(yīng)的方法為:setMargins(int,int,int,int)3 用代碼控制界面的示例(P41)public class CodeView extends Activity public void onCreate(Bundle savedInstanceSta
12、te)super.onCreate(savedInstanceState);/創(chuàng)建一個線性布局管理器LinearLayout layout = new LinearLayout(this);/設(shè)置該Activity顯示layoutsuper.setContentView(layout);layout.setOrientation(LinearLayout.VERTICAL);/創(chuàng)建一個TextViewfinal TextView show = new TextView(this);/創(chuàng)建一個按鈕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); /為按鈕綁定一個事件監(jiān)聽器bn.setOnClickListener(new OnClickListener()Overridepublic void onClick(View v) show.setText(Hello , Android , + new java.util.Date(););關(guān)于LayoutParams的用法: /s/blog_821e2bb10100tarl.html4 XML和代碼混合控制界面的示例(P42)5 開發(fā)自定義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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 26871-2024電觸頭材料金相試驗方法
- 客運(yùn)線路租賃承包合同模板
- 醫(yī)師勞動合同樣本
- 海參購銷合同范本
- 網(wǎng)絡(luò)市場數(shù)據(jù)調(diào)研
- 專業(yè)工程裝修施工合同模式
- 原料采購合同糾紛處理
- 無房產(chǎn)證房屋買賣合同模板
- 個人古董珠寶買賣協(xié)議
- 園區(qū)合作投資三方協(xié)議格式
- 企業(yè)名稱預(yù)先核準(zhǔn)通知書
- 大學(xué)生職業(yè)生涯規(guī)劃學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2023-2024學(xué)年湖南省長沙市八年級(上)期中物理試卷
- 2024年人教版語文三年級上冊《第八單元》大單元整體教學(xué)設(shè)計
- 萬達(dá)入職性格在線測評題
- 學(xué)校義務(wù)教育均衡發(fā)展一校一策方案
- 躬耕教壇強(qiáng)國有我教師心得體會范文(10篇)
- 招投標(biāo)管理招聘面試題及回答建議(某大型國企)2025年
- 2024年醫(yī)院傳染病管理制度范文(二篇)
- 大型集團(tuán)公司信息安全整體規(guī)劃方案相關(guān)兩份資料
- 2024年新人教版七年級上冊數(shù)學(xué)教學(xué)課件 4.2 整式的加法與減法 第2課時 去括號
評論
0/150
提交評論