《Android應(yīng)用程序開發(fā)》課件-第2章_第1頁
《Android應(yīng)用程序開發(fā)》課件-第2章_第2頁
《Android應(yīng)用程序開發(fā)》課件-第2章_第3頁
《Android應(yīng)用程序開發(fā)》課件-第2章_第4頁
《Android應(yīng)用程序開發(fā)》課件-第2章_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第2章界面與資源2.1基本控件2.2基本布局2.3對話框與事件2.4菜單2.5綜合案例2.6實訓(xùn)本章小結(jié)

2.1基本控件

2.1.1視圖控件與容器任務(wù)目標(biāo)在屏幕中間顯示歡迎文字,運行效果圖如圖2-1-1所示。圖2-1-1運行效果圖

實施步驟

點擊菜單【File】,選擇【new】|【newmodule】新建一個Module,命名為Ex2_1_1,其它為默認(rèn)設(shè)置。

在項目文件結(jié)構(gòu)窗口進(jìn)入res|layout目錄,修改activity_main.xml布局文件,清單如下:

案例分析

1.?UI控件的關(guān)系

1)?View子類結(jié)構(gòu)

View部分子類結(jié)構(gòu)如圖2-1-2所示。圖2-1-2View子類結(jié)構(gòu)圖

2)?ViewGroup子類結(jié)構(gòu)

ViewGroup部分子類結(jié)構(gòu)如圖2-1-3所示。圖2-1-3ViewGroup子類結(jié)構(gòu)圖

3)?TextView子類結(jié)構(gòu)

TextView部分子類結(jié)構(gòu)如圖2-1-4所示。圖2-1-4TextView部分子類結(jié)構(gòu)

4)?FrameLayout子類結(jié)構(gòu)關(guān)系

FrameLayout部分子類結(jié)構(gòu)如圖2-1-5所示。圖2-1-5FrameLayout部分子類結(jié)構(gòu)圖

從圖2-1-2到圖2-1-5可知,View包含的XML屬性和方法是所有組件都可以使用的。表2-1-1所示是View類部分常用的XML屬性、相關(guān)方法以及簡要說明。

2.?AndroidUI單位

Android尺寸的常用單位有:

(1)?px:像素。

(2)?in:英寸。

(3)?mm:毫米。

(4)?pt:磅,1/72英寸。

(5)?dpi:每英寸多少像素,通常來評價屏幕的顯示效果。

(6)?dp:抽象單位,在每英寸160點的屏幕,1dp?=?1px,在240dpi的屏幕上該控件的長度為1?×?240/160=1.5個像素點。

(7)?dip:等同于dp。

(8)?sp:和dp類似,通常用于字體大小單位。

2.1.2TextView、EditText、Button與RadioButton

設(shè)計一個簡單的注冊表單,包含用戶名、密碼、性別以及提交按鈕,點擊按鈕時顯示輸入結(jié)果。任務(wù)完成后的運行效果如圖2-1-6和圖2-1-7所示。圖2-1-6注冊表單運行效果圖圖2-1-7運行后效果圖

實施步驟

步驟1:點擊菜單【File】,選擇【new】|【newmodule】,新建一個Module,命名為Ex2_1_2,其它設(shè)置默認(rèn)。

步驟2:在項目文件結(jié)構(gòu)窗口進(jìn)入res|layout目錄,修改activity_main.xml布局文件。

步驟3:修改MainActivity.java文件。

相關(guān)知識

TextView、Button、EditText、RadioButton、RadioGroup部分常用的XML屬性、方法及說明如表2-1-2至表2-1-6所示。

2.1.3ImageView與ImageButton

任務(wù)目標(biāo)

編寫一個簡單的石頭剪刀布游戲。任務(wù)完成后的效果如圖2-1-8所示。圖2-1-8運行效果圖

實施步驟

步驟1:新建一個Module,命名為Ex2_1_3,其它設(shè)置默認(rèn)。

步驟2:在項目文件結(jié)構(gòu)窗口中進(jìn)入Ex2_1_3/res/drawable目錄,將cloth.png,play.png,scissors.png,stone.png等圖片資源拷貝到這里,如圖2-1-9所示。圖2-1-9圖片資源位置

相關(guān)知識

表2-1-7所示為ImageView部分常用的XML屬性、方法及說明。

2.1.4活動的生命周期

任務(wù)目標(biāo)

在Logcat中觀察Activity的生命周期。效果如圖2-1-10所示。圖2-1-10Activity生命周期

步驟2:在圖2-1-11中,選擇【EditFilterConfiguration】,打開【CreateNewLogcatFilter】窗體,如圖2-1-12所示,在FilterName中填寫Ex2_1_4,LogTag中輸入之前Log.i方法中的第一個參數(shù)值——“test”。圖2-1-11Logcat視圖圖2-1-12創(chuàng)建LogcatFilter

相關(guān)知識

Activity生命周期是研究Android開發(fā)最基礎(chǔ)的知識點之一,熟練掌握生命周期的特性可以在實際開發(fā)中避免一些失誤。

Activity的生命周期共七個指示器,即onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart,如圖2-1-13所示。圖2-1-13Activity生命周期

2.2基本布局

任務(wù)目標(biāo)設(shè)計一個注冊頁面,要求有用戶名、密碼、性別、興趣以及提交與重置按鈕。任務(wù)完成后效果如圖2-2-1所示。圖2-2-1注冊頁面運行效果圖

案例分析

從布局來說,如果讀者有網(wǎng)頁設(shè)計經(jīng)驗,那么布局就不是一件很麻煩的事情,線性布局基本上能夠滿足一半的需求。本例中,將頁面從上至下分成6個部分,如圖2-2-2所示。圖2-2-2布局分析

相關(guān)知識

1.?RelativeLayout相對布局

相對布局可以設(shè)置子控件相對于兄弟控件或父控件進(jìn)行布局,如上下左右對齊。

RelativeLayout能替換一些嵌套視圖,當(dāng)程序開發(fā)員用LinearLayout來實現(xiàn)一個簡單的布局但又使用了過多的嵌套時,就可以考慮使用RelativeLayout重新布局。相對布局一定要加Id才能管理。

RelativeLayout中子控件常用屬性如下:

(1)相對于父控件,如android:layout_alignParentTop=“true”。

android:layout_alignParentTop:控件的頂部與父控件的頂部對齊。

android:layout_alignParentBottom:控件的底部與父控件的底部對齊。

android:layout_alignParentLeft:控件的左部與父控件的左部對齊。

android:layout_alignParentRight:控件的右部與父控件的右部對齊。

(2)相對給定Id控件,如android:layout_above=“@id/**”。

(3)居中,如android:layout_centerInParent=“true”。

效果如圖2-2-3所示。圖2-2-3相對布局

2.?TableLayout表格布局

表格布局適用于多行多列的布局格式,每個TableLayout是由多個TableRow組成的,一個TableRow就表示TableLayout中的一行,這一行可以由多個子元素組成。實際上TableLayout和TableRow都是LineLayout線性布局的子類。但是TableRow的參數(shù)android:orientation屬性值固定為horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow實際是一個橫向的線性布局,所以子元素寬度和高度一致。

效果如圖2-2-4所示。圖2-2-4表格布局

3.?ConstraintLayout約束布局

約束布局可用靈活的方式定位和調(diào)整小部件,相對于RelativeLayout來說,約束布局可以按照比例約束控件位置和尺寸,能夠更好地適配屏幕大小不同的機型,而且性能更出色。

使用ConstraintLayout布局時需要在app/build.gradle文件中添加ConstraintLayout的依賴。

約束布局功能強大,內(nèi)容較多,這里僅介紹相對定位和角度定位知識。

效果如圖2-2-5所示。圖2-2-5相對定位

2)角度定位

角度定位能夠以一定角度和距離約束兩個窗口小部件中心的相對位置。使用角度定位可以實現(xiàn)將一個控件放置在一個圓內(nèi)。

效果如圖2-2-6所示。圖2-2-6角度定位

2.3對話框與事件

任務(wù)目標(biāo)創(chuàng)建一個項目,展示多種對話框,具體如圖2-3-1至圖2-3-7所示。圖2-3-1對話框圖2-3-2普通對話框圖2-3-3列表對話框圖2-3-4單選對話框圖2-3-5多選對話框圖2-3-6輸入對話框圖2-3-7視圖自定義對話框

相關(guān)知識

1.對話框

創(chuàng)建AlertDialog的步驟如下:

2.事件

Android中的事件處理通常用于響應(yīng)用戶UI動作,提高應(yīng)用程序交互性。例如單擊按鈕,觸摸某個對象等。

1)監(jiān)聽事件處理模型

生活中發(fā)生的事件處理實例很多,如小朋友摔倒,家長看到立即將他抱起來。在Android中,將完整的事件分成3個主要參與對象:事件源、事件和事件監(jiān)聽者。

2)監(jiān)聽事件響應(yīng)處理方法

(1)通過UI布局文件,設(shè)定UI的android:onClick的屬性(事件處理方法)。

注意:代碼里面有個跟android:onClick設(shè)置的同名方法,且該方法必須是publicvoid的,同時有一個View類型的參數(shù),該參數(shù)表示事件源對象。

(2)通過匿名類響應(yīng)事件。

(3)通過內(nèi)部類響應(yīng)事件。

(4)通過外部類相應(yīng)事件。

(5)通過Activity自身類響應(yīng)事件。

2.4菜單

任務(wù)目標(biāo)編寫一個App,要求帶有“開始游戲”和“結(jié)束游戲”的菜單項。效果如圖2-4-1所示。圖2-4-1有選項的Activity

實施步驟

步驟1:創(chuàng)建一個Module,命名為Ex2_4_1。

步驟2:在res目錄上單擊右鍵,新建一個資源文件夾,如圖2-4-2所示。在添加資源文件夾窗口,將Resourcetype設(shè)置為menu,如圖2-4-3所示。

步驟3:在menu文件夾上單擊右鍵,新建一個菜單資源文件main.xml,如圖2-4-4所示。圖2-4-2添加menu目錄圖2-4-3添加menu目錄

圖2-4-4添加菜單資源文件

相關(guān)知識

1.?ActionBar

如圖2-4-5所示,1是ActionBar的圖標(biāo);2是兩個action按鈕,這里放重要的按鈕功能,為用戶進(jìn)行某項操作提供直接訪問途徑;3是overflow按鈕,放不下的按鈕會被置于“更多...”菜單項中,該項是以下拉形式實現(xiàn)的。圖2-4-5ActionBar導(dǎo)航欄

2.選項菜單

Android的菜單可以分為三種:OptionMenu(選項菜單)、ContextMenu(上下文菜單)、PopupMenu(彈出菜單)。

Android提供了標(biāo)準(zhǔn)的XML格式的資源文件來定義菜單項,并且對所有菜單類型都支持,推薦使用XML資源文件來定義菜單,之后再把它Inflater到Activity中,而不是在Activity中使用代碼聲明。

菜單的XML資源文件,創(chuàng)建在/res/menu/目錄下,包含以下幾個元素:

創(chuàng)建選項菜單的步驟如下:

參數(shù)說明如下:

3.上下文菜單

ContextMenu顧名思義就是與context(上下文環(huán)境)相關(guān)的菜單。操作時長按某個對象就會彈出。

創(chuàng)建上下文菜單的步驟如下

4.彈出菜單

PopupMenu(彈出菜單)一般出現(xiàn)在被綁定View的下方(如果下方有空間),用于提供快速簡捷的操作。

創(chuàng)建彈出菜單的步驟如下:

2.5綜合案例

任務(wù)目標(biāo)設(shè)計一個班車系統(tǒng)的登錄界面,效果如圖2-5-1所示。圖2-5-1登錄界面

案例分析

從效果圖2-5-1來看,整體結(jié)構(gòu)比較規(guī)范,沒有錯位布局,所以本例采用Linearlayout來處理。在設(shè)計時一定要注意多分辨率自適應(yīng)問題,寬度以及字體大小不要使用px。

行26:drawableLeft可以為EditText設(shè)置一個左側(cè)的圖標(biāo),該圖標(biāo)在Android5.0上需要預(yù)先處理好大小,本例中編者已經(jīng)使用圖像處理軟件將圖片處理成長和寬都為24px了。源碼中提供了一種Android自動改變圖片大小的方法,但是需要在API24及以上環(huán)境中使用。

2.6實訓(xùn)

編寫班車系統(tǒng)注冊程序,當(dāng)程

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論