版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
張霞深圳職業(yè)技術(shù)學(xué)院Android應(yīng)用開發(fā)案例教程(AndroidStudio第二版)
課程網(wǎng)絡(luò)平臺https:///course/218803748.html0103020405AndroidUI設(shè)計(jì)圖像和動畫數(shù)據(jù)存儲廣播Broadcast與服務(wù)Service媒體播放與錄制Activity與多個用戶界面07網(wǎng)絡(luò)編程技術(shù)書目錄06Android發(fā)展簡史Android發(fā)展簡史2003年10月,AndyRubin等人創(chuàng)建Android公司,并組建Android團(tuán)隊(duì)2005年8月17日,Google低調(diào)收購了成立僅22個月的高科技企業(yè)Android及其團(tuán)隊(duì)。安迪魯賓成為Google公司工程部副總裁,繼續(xù)負(fù)責(zé)Android項(xiàng)目。2005年Google收購了剛剛成立22個月的Android公司。2007年11月5日,以Google為首的34家公司宣布成立開放手機(jī)聯(lián)盟(OpenHandsetAlliance,簡稱OHA)2008年9月22日,美國運(yùn)營商T-MobileUSA在紐約正式發(fā)布第一款Google手機(jī)——T-MobileG1Android發(fā)展簡史2007年11月5日,谷歌公司正式向外界展示了這款名為Android的操作系統(tǒng),并且在這天谷歌宣布建立一個全球性的聯(lián)盟組織,該組織由34家手機(jī)制造商、軟件開發(fā)商、電信運(yùn)營商以及芯片制造商共同組成,并與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組成開放手持設(shè)備聯(lián)盟(OpenHandsetAlliance)來共同研發(fā)改良Android系統(tǒng),這一聯(lián)盟將支持谷歌發(fā)布的手機(jī)操作系統(tǒng)以及應(yīng)用軟件。Google以Apache免費(fèi)開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。什么是Android?Android發(fā)展史2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構(gòu)圖,在同年8月18號,Android獲得了美國聯(lián)邦通信委員會(FCC)的批準(zhǔn),在2008年9月,谷歌正式發(fā)布了Android1.0系統(tǒng),這也是Android系統(tǒng)最早的版本。2009年4月,谷歌正式推出了Android1.5這款手機(jī),從Android1.5版本開始,谷歌開始將Android的版本以甜品的名字命名,Android1.5命名為Cupcake(紙杯蛋糕)。該系統(tǒng)與Android1.0相比有了很大的改進(jìn)。Android發(fā)展史2010年10月份,谷歌宣布Android系統(tǒng)達(dá)到了第一個里程碑,即電子市場上獲得官方數(shù)字認(rèn)證的Android應(yīng)用數(shù)量已經(jīng)達(dá)到了10萬個,Android系統(tǒng)的應(yīng)用增長非常迅速。在2010年12月,谷歌正式發(fā)布了Android2.3操作系統(tǒng)Gingerbread(姜餅)。Android開發(fā)環(huán)境的搭建Android開發(fā)環(huán)境的搭建以前我們在Eclipse上搭建Android開發(fā)環(huán)境,過了這么多年,Android系統(tǒng)已經(jīng)更新?lián)Q代太多次,開發(fā)工具換成了AndroidStudio。Windows下的AndroidStudio環(huán)境搭建,見教材附錄創(chuàng)建和管理Android虛擬設(shè)備Android應(yīng)用程序的特點(diǎn)Android應(yīng)用程序組成ActivityIntentBroadcastReceiver010203Android應(yīng)用程序由松散耦合的組件組成,并使用Manifest綁定到一起。文件Manifest描述了每一個組件和他們的交互方式,還用于指定應(yīng)用程序元數(shù)據(jù)、平臺要求、外部庫以及必須的權(quán)限。以下幾個組件提供了應(yīng)用程序的基本結(jié)構(gòu)模塊:ServiceContentProvider0405Activity組件相當(dāng)于手機(jī)屏幕的一個頁面,上面可以放各種UI組件。一個應(yīng)用包含多個Activity。Android使用堆棧存放多個Activity對象,并自動進(jìn)行管理。Activity存在生命周期。Intent組件Intent:是一個將要執(zhí)行的操作的抽象描述(Google)。主要用于在不同Activity之間跳轉(zhuǎn),并且傳遞數(shù)據(jù)。主要動作類型:Main、PICK、VIEW、EDIT等,對應(yīng)的數(shù)據(jù)以URI表示。IntentFilter用于描述Activity能夠操作那些Intent對象。5GBroadcast,BroadcastReceiver主要用于對應(yīng)用程序app的外部事件進(jìn)行響應(yīng)。通過NotificationManager來通知用戶發(fā)生了什么事件。需要在AndroidManifest.xml注冊,或者通過context.RegisterReceiver()注冊??梢酝ㄟ^Context.sendBroadcast()把自己的Broadcast廣播給其他app。Service組件后臺運(yùn)行的應(yīng)用程序。處理與用戶界面無關(guān)的業(yè)務(wù)邏輯。例如音樂的后臺播放,app即便是關(guān)閉,音樂也可繼續(xù)播放。ContentProvider組件用于在不同應(yīng)用程序app之間交換數(shù)據(jù)。通過實(shí)現(xiàn)ContentProvider的抽象接口,從而把自己的數(shù)據(jù)暴露給其他應(yīng)用程序調(diào)用,而其他應(yīng)用程序無需關(guān)心數(shù)據(jù)的存儲的具體細(xì)節(jié)。第1章AndroidUI設(shè)計(jì)Android應(yīng)用開發(fā)案例教程(AndroidStudio版第二版)1.1新建Android項(xiàng)目1.2Android布局管理1.3用戶界面組件包widget1.4常用組件章目錄1.5列表組件啟動AndroidStudio,出現(xiàn)彈出窗,選擇“CreateNewProject”。然后在后面的對話框中輸入應(yīng)用程序名稱(Chap01)、包名等參數(shù),并選擇AndroidSDK的版本。1.1.1創(chuàng)建一個新項(xiàng)目1.1.1創(chuàng)建一個新項(xiàng)目1.1.2Android項(xiàng)目結(jié)構(gòu)app模塊下的文件目錄結(jié)構(gòu):manifests:項(xiàng)目的配置信息文件。java:源代碼和測試代碼。res:資源目錄,存儲項(xiàng)目資源。GradleScripts模塊下的文件目錄結(jié)構(gòu)Gradle是一種依賴管理工具基于Groovy的內(nèi)部領(lǐng)域特定(DSL)語言打開Chap01項(xiàng)目,可以看到應(yīng)用項(xiàng)目的目錄和文件結(jié)構(gòu)。定義121.1.2Android項(xiàng)目結(jié)構(gòu)res目錄用于存放項(xiàng)目所需要的聲音、圖片、用戶界面等資源文件。其中最重要的三個目錄:3drawable目錄存放圖標(biāo)資源。layout目錄存放用戶界面布局文件。values目錄存放參數(shù)描述文件資源,都是XML文件,如字符串string.xml、顏色color.xml、數(shù)組arrays.xml等。res目錄結(jié)構(gòu)資源目錄res及其資源類型例如在Activity中顯示布局視圖setContentView(R.layout.main);例如Java程序要獲得布局文件中的圖片組件img=(Image)findViewById(R.id.img);例如Java程序要獲得布局文件中的列表組件alist=(List)findViewById(R.id.alist);1.1.3res資源引用方法程序中引用資源時,需要使用R類,其引用形式為:R.資源類型.資源名稱3121.1.4AndroidManifest.xml項(xiàng)目配置文件每個應(yīng)用程序都需要配置文件,它位于應(yīng)用程序根目錄下。1.1.5Android應(yīng)用程序架構(gòu)分析01邏輯控制層與表現(xiàn)層在Android應(yīng)用程序中,邏輯控制層與表現(xiàn)層是分開的設(shè)計(jì)的。邏輯控制層由Java應(yīng)用程序?qū)崿F(xiàn),表現(xiàn)層由XML文檔描述。邏輯控制層與表現(xiàn)層關(guān)系圖1.1.5Android應(yīng)用程序架構(gòu)分析02Activity主程序介紹布局文件與Activity關(guān)聯(lián)是非常重要的一個環(huán)節(jié)。Activity須重寫方法onCreate()。每個Activity都要進(jìn)行一些必要的初始化。1.1新建Android項(xiàng)目1.2Android布局管理1.3用戶界面組件包widget1.4常用組件章目錄1.5列表組件1.2Android布局管理-÷×+設(shè)計(jì)思想:Android系統(tǒng)應(yīng)用程序的設(shè)計(jì)模式是采用MVC模式,即把應(yīng)用程序分為表現(xiàn)層(View)、控制層(Control)、業(yè)務(wù)模型層(Model)。按照這種模式,圖形界面布局為表現(xiàn)層,Activity控制程序?yàn)榭刂茖?,將?yīng)用程序的界面設(shè)計(jì)與功能控制設(shè)計(jì)分離,從而可以單獨(dú)地修改用戶界面。1.2.1布局文件的規(guī)范與重要屬性布局文件的規(guī)范1)布局文件作為應(yīng)用項(xiàng)目的資源存放在res/layout目錄下,其擴(kuò)展名為.xml。2)布局文件的根節(jié)點(diǎn)通常會定義一個布局方式,在根節(jié)點(diǎn)內(nèi)可以添加組件作為節(jié)點(diǎn)。3)根節(jié)點(diǎn)必須包含一個命名空間:xmlns:android=/apk/res/android4)如果要在Java程序中控制界面組件,則必須為組件定義一個ID標(biāo)識。5)文件名只能由小寫英文字母、數(shù)字和下劃線組成,并且只能以小寫字母開頭。屬性值對齊方式設(shè)置組件大小的屬性值,單位
px(piexls,像素):即屏幕上的發(fā)光點(diǎn)。
dp(或dip)設(shè)備獨(dú)立像素:支持多分辨率設(shè)備的抽象單位。
sp(scaledpixels,比例像素):設(shè)置字體大小。由android:gravity屬性控制,其屬性值有top、bottom、left、right、center_horizontal、center_vertical等。新建布局文件1.2.2常見的布局方式布局文件可以單獨(dú)創(chuàng)建,創(chuàng)建時需要輸入文件名,文件名的字母必須全部小寫,然后輸入布局文件的類型。新建布局1.2.2常見的布局方式AndroidStudio4.2版本默認(rèn)的布局是線性布局LinearLayout
。在工作區(qū)中有兩種預(yù)覽,一種設(shè)計(jì)預(yù)覽在左側(cè),一種叫做藍(lán)圖在右側(cè)。兩者可以輔助進(jìn)行布局預(yù)覽。1.2.2常見的布局方式01線性布局LinearLayout線性布局LinearLayout將組件按照水平或垂直方向排列。
1)設(shè)置線性布局為水平方向 android:orientation="horizontal”
2)設(shè)置線性布局為垂直方向 android:orientation="vertical"【例1-1】線性布局應(yīng)用示例
設(shè)計(jì)一個5個按鈕的線性布局線性布局的控件層級關(guān)系1.2.2常見的布局方式02幀布局FrameLayout幀布局FrameLayout是將組件放置到左上角位置,當(dāng)添加多個組件時,后面的組件將遮蓋之前的組件。在XML布局文件中,由根元素FrameLayout來標(biāo)識幀布局。【例1-2】幀布局應(yīng)用示例
將圖像文件復(fù)制到res/drawable目錄下布局的控件層級關(guān)系和屬性幀布局示例結(jié)果1.2.2常見的布局方式03表格布局TableLayout表格布局將頁面劃分成行列構(gòu)成的單元格。由根元素TableLayout來標(biāo)識表格布局。行由<TableRow></TableRow>定義。組件放置到哪一列,由android:layout_column指列序號。TableLayout的三個常用屬性:android:collapseColumns:設(shè)置需要被隱藏的列序號android:shrinkColumns:設(shè)置允許被收縮的列序號android:stretchColumns:設(shè)置運(yùn)行被拉伸的列序號
設(shè)計(jì)一個3行4列的表格布局1.2.2常見的布局方式04相對布局RelativeLayout相對布局是采用相對其它組件的位置的布局方式。通過指定ID關(guān)聯(lián)其他組件,與之右對齊、上下對齊等方式來排列組件。
【例1-4】應(yīng)用相對布局設(shè)計(jì)一個圖片和4個按鈕,如右圖。1.2.2常見的布局方式05網(wǎng)格布局GridLayout網(wǎng)格布局是把設(shè)置區(qū)域劃分為若干行和若干列的網(wǎng)格,網(wǎng)格中的一個組件可以占據(jù)多行或多列。
可以設(shè)置每個組件在網(wǎng)格中的大小和擺放方式。GridLayout主要屬性如下:alignmentMode:設(shè)置布局管理器的對齊方式。columnCount:設(shè)置網(wǎng)格列的數(shù)量。rowCount:設(shè)置網(wǎng)格行的數(shù)量。layout_columnSpan:設(shè)置組件占據(jù)的列數(shù)。layout_rowSpan:設(shè)置組件占據(jù)的行數(shù)。
應(yīng)用網(wǎng)格布局設(shè)計(jì)一個計(jì)算器界面1.2.2常見的布局方式06約束布局ConstraintLayout約束布局是一個ViewGroup,它的出現(xiàn)是為了解決布局嵌套過多的問題,以靈活的方式定位和調(diào)整組件。在工作區(qū)中有兩種預(yù)覽,左側(cè)是設(shè)計(jì)預(yù)覽,右側(cè)是藍(lán)圖。組件的四個小圓圈是用來關(guān)聯(lián)和定位,四個小方格子用來調(diào)整組件的大小。1.1新建Android項(xiàng)目1.2Android布局管理1.3用戶界面組件包widget1.4常用組件章目錄1.5列表組件1.3.1用戶界面組件包widget大多數(shù)用戶界面組件都放在widget包及其子包中。widget包中的常用組件如表1-3所示。1.3.2View類視圖組件View類,是用戶界面組件的共同父類。幾乎所有的高級UI組件都繼承自View類。例如TextView、Button、List、EditText、RadioButton、CheckBox等。一個View就是屏幕上一塊矩形區(qū)域,負(fù)責(zé)渲染和上面的事件處理,并可以設(shè)置該區(qū)域是否可見,是否可以獲取焦點(diǎn)等。對于View類及其子類的屬性,可以在布局文件中設(shè)置,也可以在Java文件中動態(tài)設(shè)置。1.1新建Android項(xiàng)目1.2Android布局管理1.3用戶界面組件包widget1.4常用組件章目錄1.5列表組件1.4.1文本框TextView文本框(TextView)用于顯示文本內(nèi)容,是最常用的組件之一。布局文件xml控制文件java1.4.1文本框TextView顏色屬性在XML文件中表示顏色的方法有多種。
Android系統(tǒng)在android.graphics.Color中定義了12種常見的顏色常數(shù)。Color.BLACK 黑色Color.BLUE 藍(lán)色Color.CYAN 青綠色Color.DKGRAY 灰黑色Color.GRAY 灰色Color.GREEN 綠色Color.LTGRAY 淺灰色Color.MAGENTA
紅紫色Color.RED
紅色Color.TRANSPARENT 透明Color.WHITE
白色Color.YELLOW
黃色1.4.1文本框TextView例1-7設(shè)計(jì)一個文本標(biāo)簽組件程序,有標(biāo)題和正文,而且翻看的文字超過一屏。把大段文字TextView放在一個ScrollView里面,當(dāng)文字內(nèi)容很長的時候,ScrollView自動會顯示滾動條。1.4.1文本框TextView例1-7strings.xml部分源代碼:values目錄下的strings.xml,添加屬性為”hello”的元素項(xiàng)的文本內(nèi)容。<stringname="title">少年中國說(節(jié)選)\n梁啟超〔近代〕</string><stringname="hello">故今日之責(zé)任,不在他人,而全在我少年。少年智則國智,少年富則國富;少年強(qiáng)則國強(qiáng),少年獨(dú)立則國獨(dú)立;少年自由則國自由;少年進(jìn)步則國進(jìn)步;少年勝于歐洲,則國勝于歐洲;少年雄于地球,則國雄于地球。紅日初升,其道大光。河出伏流,一瀉汪洋。潛龍騰淵,鱗爪飛揚(yáng)。乳虎嘯谷,百獸震惶。鷹隼試翼,風(fēng)塵翕張。奇花初胎,矞矞皇皇。干將發(fā)硎,有作其芒。天戴其蒼,地履其黃。縱有千古,橫有八荒。前途似海,來日方長。美哉我少年中國,與天不老!壯哉我中國少年,與國無疆!</string>1.4.2文本編輯框
EditText文本編輯框(EditText),在設(shè)計(jì)面板上的名稱是PlainText,用于接收用戶輸入的文本信息內(nèi)容。它繼承了文本框(TextView)的主要方法。
【例1-8】制作登陸界面1.4.3圖像顯示類
ImageView圖像顯示(ImageView)類用于顯示圖片或圖標(biāo)等圖像資源,并提供圖像縮放及著色(渲染)等圖像處理功能。1.4.4按鈕ButtonButton用于處理人機(jī)交互的事件。Button是TextView的子類,繼承了TextView所有的方法和屬性。事件處理的實(shí)現(xiàn)步驟:給控件設(shè)置監(jiān)聽、給監(jiān)聽接口添加事件處理代碼。Button常需要設(shè)置OnClickListener(點(diǎn)擊事件監(jiān)聽),當(dāng)單擊按鈕時,監(jiān)聽觸發(fā)onClick事件,實(shí)現(xiàn)用戶需要的功能。OnClickListener(點(diǎn)擊事件監(jiān)聽接口)有一個onClick()方法,一定要重寫這個方法。1.4.5進(jìn)度條進(jìn)度條(ProgressBar)能以形象直觀地顯示某個過程的進(jìn)度。例如音樂播放,文件下載都需要時間完成,最需要進(jìn)度條提示執(zhí)行進(jìn)度,ProgressBar的常用屬性:android:max,進(jìn)度條的最大值android:progress,進(jìn)度條的當(dāng)前進(jìn)度
【例1-9】進(jìn)度條應(yīng)用示例1.4.6單選按鈕與復(fù)選按鈕單選組件RadioGroup由一組單選按鈕RadioButton組成。單選組件RadioGroup用于多項(xiàng)選擇中,只允許任選其中一項(xiàng)的情形。復(fù)選按鈕CheckBox用于多項(xiàng)選擇的情形,用戶每次可選擇多個選項(xiàng)。復(fù)選按鈕CheckBox是按鈕Button的子類,其屬性與方法繼承于按鈕Button。【例1-10】單選按鈕與復(fù)選框應(yīng)用示例。1.1新建Android項(xiàng)目1.2Android布局管理1.3用戶界面組件包widget1.4常用組件章目錄1.5列表組件列表也是常用組件,ListView類是Android程序開發(fā)中經(jīng)常用到的組件,該組件必須與適配器配合使用,由適配器提供顯示樣式和顯示數(shù)據(jù)。1.5.1ListView類1.5.1ListView類批量數(shù)據(jù)的輸出,需要借助適配器接口Adaper,由Adaper提供顯示數(shù)據(jù)和顯示樣式的聯(lián)系。Adaper是連接后端數(shù)據(jù)和前端顯示的接口,是數(shù)據(jù)和UI(View)之間的紐帶。在常見的ListView、GridView都需要用到Adapter。適配器接口AdapterData、Adapter、View三者關(guān)系圖1.5.1ListView類Android中所有的Adapter一覽1.5.1ListView類常用的AdapterArrayAdapter支持泛型操作,最為簡單。例如大部分程序會用到String,我們可以將ArrayAdaper泛型指定為String。BaseAdapter是一個抽象類,繼承它需要實(shí)現(xiàn)較多的方法,所以也就具有較高的靈活性;SimpleAdapter有最好的擴(kuò)充性,可以自定義出各種效果。1.5.2ArrayAdapter數(shù)組適配器ArrayAdapter的構(gòu)造需要3個參數(shù),依次為this上下文、行布局(注意是列表每一行的布局)、數(shù)據(jù)源(一個數(shù)組)。使用ArrayAdapter來裝配數(shù)據(jù),連接列表視圖和數(shù)組。Android系統(tǒng)內(nèi)置了多種ListItem
布局方式。android.R.layout.simple_list_item_1:一行text。android.R.layout.simple_list_item_2:一行title,一行text。用setAdapter()完成適配的最后工作。1.5.1ListView類
【例1-11】簡單列表示例,效果如圖1.5.2ArrayAdapter數(shù)組適配器示例1-11:ArrayAdapterOnItemClickListener是一個接口,用于監(jiān)聽列表
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建貨運(yùn)從業(yè)資格證考試試題及答案解析
- 2025年鄂州貨運(yùn)準(zhǔn)駕證模擬考試
- 2025年畢節(jié)貨運(yùn)從業(yè)資格證模擬考試題下載
- 2025年貴港從業(yè)資格證應(yīng)用能力考些啥
- 茶藝師聘用合同范本
- 地?zé)岚l(fā)電架電施工合同
- 互聯(lián)網(wǎng)產(chǎn)品運(yùn)營專員勞動合同
- 融資合作法律風(fēng)險(xiǎn)評估
- 宗教建筑承包協(xié)議
- 市政工程承諾函模板
- 基層醫(yī)療機(jī)構(gòu)醫(yī)療廢物污水管理共35張課件
- 高低壓開關(guān)柜技術(shù)方案
- 四年級上冊語文選擇正確讀音名校專項(xiàng)習(xí)題含答案
- [北京]輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(圖文并茂)
- 高中學(xué)生英語寫作能力培養(yǎng)研究課題實(shí)施方案
- 部編版小學(xué)語文一年級上冊期末復(fù)習(xí)計(jì)劃
- 大貓英語分級閱讀 三級1 How to Have a Party 課件
- 常用焊接英語詞匯大全
- 數(shù)控技術(shù)專業(yè)實(shí)踐教學(xué)體系
- 福伊特液力變矩器的結(jié)構(gòu)及工作原理的使用
- 制漿造紙廠樹脂沉積的機(jī)理及其控制_圖文
評論
0/150
提交評論