版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章Android用戶界面3G智能手機(jī)開發(fā)Android用戶界面組件菜單、對話框、按鈕、下拉列表;包括時間響應(yīng)機(jī)制和布局管理;View和ViewGroup采用組合設(shè)計(jì)模式View的子類:widget;ViewGroup子類:Layout;布局容器類內(nèi)容提要本章將創(chuàng)建一個真實(shí)的實(shí)例程序:數(shù)獨(dú)游戲。通過逐步完善該游戲的功能,講解以下方面內(nèi)容:使用布局文件組織各個用戶界面;使用Android的文本、顏色及其他資源;添加控制項(xiàng)、應(yīng)用主題以更改外觀;添加菜單項(xiàng)和首選項(xiàng);1數(shù)獨(dú)游戲簡介Android數(shù)獨(dú)游戲不再使用紙筆;給出提示,以減少破解工作量;難度適中,保留挑戰(zhàn)性、趣味性;Android數(shù)獨(dú)游戲示例程序2聲明性設(shè)計(jì)設(shè)計(jì)用戶界面的方法過程性設(shè)計(jì):指用代碼設(shè)計(jì)用戶界面(Java代碼);聲明性設(shè)計(jì):不涉及任何代碼(XML描述符);Android同時支持過程性設(shè)計(jì)和聲明性設(shè)計(jì),允許開放人員使用任一風(fēng)格創(chuàng)建用戶界面;2聲明性設(shè)計(jì)兩種方法比較XML代碼比Java代碼短小易懂;以后可能開發(fā)的Aandroid工具會更好的與XML協(xié)作;盡可能的使用聲明性的XML語言;3創(chuàng)建啟動界面建立工程Projectname:SudokuPackagename:org.example.sudokuActivityname:SudokuApplicationname:Sudoku實(shí)際工程中,可以自定義名稱;系統(tǒng)中每個應(yīng)用程序必須具有唯一的軟件包名。3創(chuàng)建啟動界面Android程序是活動的集合,每個活動定義一個用戶界面屏幕;創(chuàng)建Sudoku項(xiàng)目時,ADT在Sudoku.java中建立了一個活動;3創(chuàng)建啟動界面上面代碼中的R.layout.main是一個資源標(biāo)識符,引用了res/layout目錄中的main.xml文件;main.xml以XML格式聲明用戶界面,在運(yùn)行時,Android解析并實(shí)例化該文件中定義的資源,并將其設(shè)置為當(dāng)前活動的視圖;sudoku項(xiàng)目中的初始資源3創(chuàng)建啟動界面根據(jù)不同的資源類型包含了不同的靜態(tài)內(nèi)部類attr中聲明屬性;drawable中聲明一些圖片資源;layout中聲明布局文件;string中聲明字符串;R.java文件內(nèi)容3創(chuàng)建啟動界面main.xml文件定義用戶界面布局編輯器XML編輯器XML文件聲明3創(chuàng)建啟動界面main.xml:布局文件;布局:存放一個或多個子對象及某種行為的容器;行為:描述了如何將這些子對象放置在屏幕上其父對象的矩形區(qū)域中;3創(chuàng)建啟動界面常用布局FrameLayout(框架布局):從屏幕的左上角開始顯示子對象,主要用于選項(xiàng)卡視圖和圖像切換器;LinearLayout(線性布局):以單列或單行的形式顯示子對象,最常用的布局方式;垂直:android:orientation=“vertical”水平:android:orientation=“horizontal”3創(chuàng)建啟動界面常用布局RelativeLayout(相對布局):以相對于其他對象或父對象的位置顯示子對象,常用于表單中;TabLayout(表格布局):以多行和多列的方式顯示子對象,類似于HTML表格;3創(chuàng)建啟動界面main.xml文件:<LinearLayout>標(biāo)記中有一個如下子對象部件:<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>此處定義了一個文本標(biāo)簽,使得屏幕顯示文本信息;3創(chuàng)建啟動界面文本標(biāo)簽如右圖所示;這是建立工程后,運(yùn)行應(yīng)用程序的初始界面;3創(chuàng)建啟動界面通過修改main.xml文件,使用不同的文本和幾個按鈕來替換應(yīng)用程序初始界面;替換后的游戲啟動界面如有圖所示;改動的文件:main.xmlstrings.xml3創(chuàng)建啟動界面Sudoku/res/layout/main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/main_title"/>3創(chuàng)建啟動界面Sudoku/res/values/strings.xml<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">Sudoku</string><stringname="main_title">AndroidSudoku</string><stringname="continue_label">Continue</string><stringname="new_game_label">New</string><stringname="about_label">About</string><stringname="exit_label">Exit</string></resources>3創(chuàng)建啟動界面上述代碼實(shí)現(xiàn)了創(chuàng)建數(shù)獨(dú)游戲簡單啟動界面的功能;下一步,將實(shí)現(xiàn)設(shè)置標(biāo)題文本的格式,改變按鈕的大小并使用不同的背景顏色;顏色定義res/values/colors.xml3創(chuàng)建啟動界面在Sudoku/res/values/colors.xml創(chuàng)建顏色定義;<?xmlversion="1.0"encoding="utf-8"?><resources><colorname="background">#3500ffff</color></resources>3創(chuàng)建啟動界面定義了屏幕背景色;設(shè)置了字體大??;設(shè)置了按鈕大??;3創(chuàng)建啟動界面main.xml文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:background="@color/background" android:layout_height="fill_parent" android:layout_width="fill_parent"
android:padding="15dip" android:orientation="horizontal"><LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="center" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/main_title" android:layout_gravity="center"
android:layout_marginBottom="15dip"
android:textSize="20.5sp" /> <Button android:id="@+id/continue_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/continue_label"/> <Button android:id="@+id/new_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/new_game_label"/> <Button android:id="@+id/about_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/about_label"/> <Button android:id="@+id/exit_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/exit_label"/> </LinearLayout></LinearLayout>3創(chuàng)建啟動界面上述main.xml中,語法:@+id/resid;創(chuàng)建一個新的資源ID供其他對象引用;例如:@+id/about_button定義了About按鈕的ID,之后用戶按該按鈕時,將使用這個ID觸發(fā)某個事件;“@”表示字符“/”之后的內(nèi)容是組件的ID字符串,“+”表示該資源必須創(chuàng)建并添加到資源中;在XML中引用形式為:“@id/resid”,沒有“+”表示無需創(chuàng)建,僅引用;4橫向布局Android設(shè)備支持模式切換,程序必須支持橫向模式下的正確運(yùn)行;將上述啟動界面切換到橫向模式;創(chuàng)建橫向模式布局;4橫向布局創(chuàng)建res/layout-land/main.xml文件;采用TableLayout(表格布局)布局方式創(chuàng)建兩列按鈕;layout-land中“-land”為資源后綴,res/layout-land/main.xml用來替代res/layout/main.xml;每個替代資源文件必須定義完全相同的ID集合;4橫向布局僅修改布局,只需創(chuàng)建一個橫向布局的main.xml文件;Sudoku/res/layout-land/main.xml文件內(nèi)容見P35。5實(shí)現(xiàn)About對話框About按鈕的功能:按下按鈕彈出窗口,顯示數(shù)獨(dú)游戲的信息;閱讀完信息后,按Back按鈕可以關(guān)閉信息窗口;實(shí)現(xiàn)方法:定義一個新Activity類并啟動;使用AlertDialog類顯示;子類化的Android的Dialog類顯示;為新Activity創(chuàng)建布局文件about.xml;5實(shí)現(xiàn)About對話框創(chuàng)建About活動的步驟:創(chuàng)建About按鈕活動的布局文件:about.xml;在strings.xml文件中添加About對話框的標(biāo)題及文本內(nèi)容;創(chuàng)建About.java文件定義About活動;將About活動與Sudoku類中的About按鈕關(guān)聯(lián);5實(shí)現(xiàn)About對話框關(guān)聯(lián)視圖ID步驟:調(diào)用setOnClickListener()方法通知系統(tǒng)觸發(fā)對象;在onCreat()方法中調(diào)用findViewById()方法根據(jù)ID查找視圖;將所有的按鈕視圖與按鈕的ID關(guān)聯(lián);5實(shí)現(xiàn)About對話框啟動About活動:在Sudoku類中實(shí)現(xiàn)OnClickListener接口;定義onClick()方法處理單擊事件;獲取被點(diǎn)擊按鈕ID;創(chuàng)建Intent類;啟動About活動;在AndroidManifest.xml文件中聲明About活動;5實(shí)現(xiàn)About對話框未聲明活動時運(yùn)行錯誤提示點(diǎn)擊About按鈕的運(yùn)行界面6應(yīng)用主題Android主題一個樣式的集合可用于重寫Android部件的外觀網(wǎng)頁設(shè)計(jì)-CSSCascadingStyleSheets層疊樣式表將屏幕上顯示的內(nèi)容與其外觀或樣式分離6應(yīng)用主題Android系統(tǒng)預(yù)設(shè)的主題,可以通過名稱進(jìn)行引用子類化現(xiàn)有主題并重寫其默認(rèn)值,可以構(gòu)建自定義主題自定義主題在res/values/styles.xml文件中定義6應(yīng)用主題為About活動使用系統(tǒng)預(yù)定義主題打開AndroidManifest.xml文件,修改About活動定義,添加主題6應(yīng)用主題主題資源的引用方式"@android:style/s_name“"@style/s_name"7添加菜單添加主菜單第一步:定義字符串資源\res\values\strings.xml7添加菜單第二步:定義菜單資源res\menu\menu.xml7添加菜單第三步:在Sudoku類中創(chuàng)建菜單導(dǎo)入以下菜單相關(guān)的包:importandroid.view.Menu;importandroid.view.MenuInflater;impor
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第七章 膳食營養(yǎng)指導(dǎo)與疾病預(yù)防課件
- 2024年度工程協(xié)議執(zhí)行與監(jiān)管臺賬
- 2024年財務(wù)外包代理協(xié)議范本
- XX磚廠2024年度加工承攬協(xié)議范本
- 2024年度戶外墻面廣告發(fā)布協(xié)議
- 2024型號鋁合金買賣協(xié)議樣本
- 2024年度原材料采購協(xié)議樣式
- 2024年房屋買賣協(xié)議簡
- 學(xué)校章程建設(shè)實(shí)施方案全套
- 2024年度股東權(quán)益合作協(xié)議樣本
- 期中測評試卷(1-4單元)(試題)-2024-2025學(xué)年人教版三年級數(shù)學(xué)上冊
- GB/T 15822.1-2024無損檢測磁粉檢測第1部分:總則
- 新質(zhì)生產(chǎn)力解讀課件
- 經(jīng)理的困惑案例分析
- 海水淡化反滲透裝置檢修維護(hù)說明書
- 建筑工程專業(yè)英語unitPPT課件
- 學(xué)生對教師評價表(共8頁)
- 批發(fā)零售大個體 E204-3批發(fā)和零售業(yè)產(chǎn)業(yè)活動單位(個體經(jīng)營戶)商品銷售和庫存
- 異辛酸鈉合成工藝及建設(shè)項(xiàng)目
- 西電計(jì)組課程設(shè)計(jì)報告
- 汽車買賣合同工商示范文本
評論
0/150
提交評論