Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)電子教案(全)完整版課件整套教學(xué)課件_第1頁(yè)
Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)電子教案(全)完整版課件整套教學(xué)課件_第2頁(yè)
Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)電子教案(全)完整版課件整套教學(xué)課件_第3頁(yè)
Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)電子教案(全)完整版課件整套教學(xué)課件_第4頁(yè)
Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)電子教案(全)完整版課件整套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩521頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)第1章 Android基礎(chǔ)入門(mén) Android開(kāi)發(fā)環(huán)境搭建 Android程序結(jié)構(gòu) 程序調(diào)試 Android體系結(jié)構(gòu) 開(kāi)發(fā)第一個(gè)程序 資源的管理與使用重點(diǎn)了解掌握3通信技術(shù)Android體系結(jié)構(gòu)1Android開(kāi)發(fā)環(huán)境搭建 HelloWorld程序的編寫(xiě)2Android程序結(jié)構(gòu)Android資源的管理和使用程序調(diào)試學(xué)習(xí)目標(biāo)1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試Android本意指“機(jī)

2、器人”,Google公司將Android的標(biāo)識(shí)設(shè)計(jì)為一個(gè)綠色機(jī)器人, 表示Android系統(tǒng)符合環(huán)保概念,是一個(gè)輕薄短小,功能強(qiáng)大的移動(dòng)系統(tǒng),是第一個(gè)真正為手機(jī)打造的開(kāi)放性系統(tǒng)。什么是Android什么是AndroidAndroid和iOS主要區(qū)別對(duì)比項(xiàng)目AndroidiOS開(kāi)發(fā)語(yǔ)言JavaObjective-c,Swift系統(tǒng)開(kāi)放性Android源代碼開(kāi)放,開(kāi)放性更好封閉操作系統(tǒng),開(kāi)放性較差系統(tǒng)安全性源代碼開(kāi)放,安全性較差封閉操作系統(tǒng),安全性更高2015年9月2018年11月移動(dòng)平臺(tái)市場(chǎng)占有率4.5K-6K0.7%30K-50K18.2%6K-8K2.8%8K-10K5.7%20K-30K2

3、9.8%15K-20K19.6%10K-15K22.3%¥18610取自12554份樣本可供參考截止至2018年12月數(shù)據(jù)來(lái)源:職友集北京Android工程師平均薪資 第一代通信技術(shù)(1G):是指最初的模擬、僅限語(yǔ)音的蜂窩電話(huà)標(biāo)準(zhǔn)。第二代通信技術(shù)(2G):是指第2代移動(dòng)通信技術(shù),代表為GSM,以數(shù)字語(yǔ)音傳輸技術(shù)為核心。傳輸速度9.6k/s。第三代通信技術(shù)(3G):是指將無(wú)線(xiàn)通信與國(guó)際互聯(lián)網(wǎng)等多媒體通信結(jié)合的新一代移動(dòng)通信系統(tǒng)。3G通信網(wǎng)在室內(nèi)、室外和行車(chē)的環(huán)境中能夠分別支持至少2M/s、384K/s以及144K/s的傳輸速度第四代通信技術(shù)(4G):又稱(chēng)IMT-Advanced技術(shù),它包括了TD

4、-LTE 和 FDD-LTE。4G通信網(wǎng)最高甚至可以達(dá)到100M/s的傳輸速度。第五代通信技術(shù)(4G):目前尚未正式商用。傳輸速度據(jù)說(shuō)可達(dá)10Gbps。1.1.1 通信技術(shù)通信技術(shù)Android操作系統(tǒng)最初是由安迪魯賓(Andy Rubin)開(kāi)發(fā)出的,后來(lái)被Google收購(gòu),并于2007年11月5日正式向外界展示了這款系統(tǒng)。隨后Google以Apache開(kāi)源許可證的授權(quán)方式,發(fā)布了Android操作系統(tǒng)的源代碼。1.1.2 Android起源Android起源2008年9月發(fā)布Android第1個(gè)版本Android1.1。 2009年4月30日,Android1.5 Cupcake(紙杯蛋糕)

5、正式發(fā)布。2009年9月5日,Android1.6 Donut(甜甜圈)版本發(fā)布。.Android9.0 Android pie (派)Android1.5 Cupcake(紙杯蛋糕)Android發(fā)展歷史1.1.2 Android發(fā)展歷史鬧鐘通知管理器多媒體框架音頻驅(qū)動(dòng)1.1.3 Android體系結(jié)構(gòu)Dalvik是Google公司自己設(shè)計(jì)用于A(yíng)ndroid平臺(tái)的虛擬機(jī),它主要是完成對(duì)象生命周期管理,堆棧管理,線(xiàn)程管理,安全和異常管理,以及垃圾回收等等重要功能。1.1.4 Dalvik虛擬機(jī)Dalvik虛擬機(jī)Dalvik虛擬機(jī)編譯文件過(guò)程1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)

6、介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試JDK版本最低為1.7系統(tǒng)空閑內(nèi)存至少為2GB配置環(huán)境下載Android Studio安裝完成/1.2.1 Android Studio安裝Android Studio配置完成創(chuàng)建創(chuàng)建模擬設(shè)備選擇合適的SDK版本234選擇設(shè)備類(lèi)型及尺寸11.2.2 模擬器創(chuàng)建單擊ADV Manager標(biāo)簽5SDK:(software development kit)軟件開(kāi)發(fā)工具包。SDK用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)

7、工具的集合。1.2.3 下載SDKSDK下載1.2.3下載SDK下載Tools工具23下載SDK版本1單擊 圖標(biāo)1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試學(xué)習(xí)Android可以開(kāi)發(fā)出精美的APP。開(kāi)發(fā)第一個(gè)Android程序本小節(jié)就教大家如何編寫(xiě)一個(gè)HelloWorld程序。1.3開(kāi)發(fā)第一個(gè)Android程序功能描述:技術(shù)要點(diǎn):在A(yíng)ndroid Studio的Welcome to Android Studio窗口中選擇【Sta

8、rt a new Android Studio project】選項(xiàng)創(chuàng)建項(xiàng)目點(diǎn)擊工具欄中【AVD Manager】標(biāo)簽啟動(dòng)模擬器點(diǎn)擊工具欄中的運(yùn)行按鈕運(yùn)行程序?qū)崿F(xiàn)步驟: 展示HelloWorld界面。使用AndroidStudio創(chuàng)建程序,使用模擬器運(yùn)行程序。2311.3開(kāi)發(fā)第一個(gè)Android程序1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試存放程序的代碼和資源等文件程序的gradle構(gòu)建腳本指定項(xiàng)目中所使用的SDK路徑1.4

9、Android程序結(jié)構(gòu)配置在A(yíng)ndroid中使用的子項(xiàng)目(Moudle)1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試圖片資源:擴(kuò)展名為.png、.jpg、.gif、.9.png等的文件。圖片資源分類(lèi)應(yīng)用圖標(biāo)資源:存放在mipmap文件夾中界面中使用的圖片資源:存放在drawable文件夾中屏幕密度匹配規(guī)則圖片資源1.5.1 圖片資源密度范圍值mipmap文件夾drawable文件夾120160dpimipmap_mdpimipm

10、ap_mdpi160240dpimipmap_hdpidrawable_hdpi240320dpimipmap_xdpidrawable_xdpi320480dpimipmap_xxdpidrawable_xxdpi480640dpimipmap_xxxdpidrawable_xxxdpi調(diào)用圖片資源的方法通過(guò)Java代碼調(diào)用圖片資源 /調(diào)用mipmap文件夾中資源文件 getResources().getDrawable(R.mipmap.ic_launcher); /調(diào)用以drawable開(kāi)頭的文件夾中的資源文件 getResources().getDrawable(R.drawable.

11、icon); 在XML布局文件中調(diào)用圖片資源 mipmap/ic_launcher /調(diào)用mipmap文件夾中的資源文件 drawable/icon /調(diào)用以drawable開(kāi)頭的文件夾中的資源文件圖片資源1.5.1 圖片資源主題是包含一種或多種的格式化屬性集合,在程序中調(diào)用主題資源可改變窗體的樣式,對(duì)整個(gè)應(yīng)用或某個(gè)Activity存在全局性影響。定義位置:res/values目錄下的styles.xml文件中標(biāo)簽:定義主題:設(shè)置主題的樣式主題資源1.5.2 主題和樣式資源1.5.2 主題和樣式資源主題資源主題資源 color/colorPrimary color/colorPrimaryDa

12、rk color/colorAccent 用于定義主題用于指定主題名稱(chēng)用于指定繼承的父主題用于設(shè)置主題的樣式 調(diào)用方式XML文件中:android:theme =style/AppThemeJava代碼中:setTheme(R.style.AppTheme);樣式:設(shè)置View的具體樣式。定義位置:res/values目錄下的styles.xml文件中標(biāo)簽在XML文件中調(diào)用方法樣式資源1.5.2 主題和樣式資源:定義樣式:設(shè)置控件的樣式style=style/textViewSytle布局資源通常用于搭建程序中的各個(gè)界面。定義位置:res/layout文件夾中調(diào)用方式通過(guò)Java代碼調(diào)用布局資

13、源文件在XML布局文件中調(diào)用布局資源文件布局資源1.5.3 布局資源/在A(yíng)ctivity的onCreate()方法中調(diào)用activity_main.xml布局資源setContentView(R.layout.activity_main);/在XML布局文件中調(diào)用activity_main.xml布局資源定義位置:res/values/文件夾的strings.xml文件中編寫(xiě)字符串資源內(nèi)容字符串資源1.5.4 字符串資源 字符串應(yīng)用名稱(chēng)調(diào)用方式通過(guò)Java代碼調(diào)用字符串資源在XML布局文件中調(diào)用字符串資源字符串資源1.5.4 字符串資源在A(yíng)ctivity的onCreate()方法中調(diào)用名為ap

14、p_name的字符串資源getResources().getString(R.string.app_name); 在XML布局文件中調(diào)用名為app_name字符串資源string/app_name定義位置:res/values/文件夾的colors.xml文件中colors.xml文件中的顏色資源顏色資源1.5.5 顏色資源 #3F51B5 #303F9F #FF4081用于定義顏色資源的標(biāo)簽用于指定顏色資源的名稱(chēng)顏色值調(diào)用方式通過(guò)Java代碼調(diào)用顏色資源在XML布局文件中調(diào)用顏色資源顏色資源1.5.5 顏色資源在A(yíng)ctivity的onCreate()方法中調(diào)用名為colorPrimary的顏

15、色資源getResources().getColor(R.color.colorPrimary);在XML布局文件中調(diào)用名為colorPrimary的顏色資源color/colorPrimary調(diào)用顏色資源的方法調(diào)用顏色資源的屬性多學(xué)一招:定義顏色值1.5.5 顏色資源在A(yíng)ndroid中,顏色值是由RGB(紅、綠、藍(lán))三原色和一個(gè)透明度(Alpha)表示,顏色值必須以“#”開(kāi)頭,“#”后面顯示Alpha-Red-Green-Blue形式的內(nèi)容。其中,Alpha值可以省略,如果省略,表示顏色默認(rèn)是完全不透明的。定義顏色的形式#RGB#ARGB#RRGGBB#AARRGGBB尺寸資源:例如:Vie

16、w的寬高值定義位置:res/values/文件夾的dimens.xml文件中創(chuàng)建dimens.xml文件:右鍵單擊values文件夾,選中【New】 【XML】 【Values XML File】,在彈出框中輸入dimens。編寫(xiě)尺寸資源尺寸資源1.5.6 尺寸資源 16dp 16dp用于定義尺寸資源的標(biāo)簽調(diào)用方式通過(guò)Java代碼調(diào)用尺寸資源在XML布局文件中調(diào)用尺寸資源尺寸資源1.5.6 尺寸資源在A(yíng)ctivity的onCreate()方法中調(diào)用名為activity_horizontal_margin的顏色資源getResources().getDimension(R.dimen.activ

17、ity_horizontal_margin);在XML布局文件中調(diào)用名為activity_horizontal_margin的尺寸資源dimen/activity_horizontal_margin多學(xué)一招:Android支持的尺寸單位1.5.6 尺寸資源尺寸單位px(pixels,像素):每個(gè)px對(duì)應(yīng)屏幕上的一個(gè)點(diǎn)。dp(Density-independent Pixels,設(shè)備獨(dú)立像素):是一種與屏幕密度無(wú)關(guān)的尺寸單位。sp(scaled pixels,比例像素):主要處理字體的大小,可以根據(jù)用戶(hù)字體大小首選項(xiàng)進(jìn)行縮放。in(inches,英寸):標(biāo)準(zhǔn)長(zhǎng)度單位。pt(points,磅):屏

18、幕物理長(zhǎng)度單位,1磅為1/72英寸。mm(Millimeters,毫米):屏幕物理長(zhǎng)度單位。1.4 Android程序結(jié)構(gòu)1.1 Android簡(jiǎn)介 1.2 Android開(kāi)發(fā)環(huán)境搭建1.3 開(kāi)發(fā)第一個(gè)Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試單元測(cè)試單元測(cè)試是指在應(yīng)用程序開(kāi)發(fā)過(guò)程中對(duì)最小的功能模塊進(jìn)行測(cè)試,可以在完成某個(gè)功能之后對(duì)該功能進(jìn)行單獨(dú)測(cè)試。單元測(cè)試分類(lèi):Android單元測(cè)試:連接Android設(shè)備、速度比較慢、適合需要調(diào)用Android API的單元測(cè)試。Junit單元測(cè)試:不依賴(lài)Android設(shè)備(在本地即可運(yùn)行)、速

19、度快、適合只對(duì)java代碼功能進(jìn)行的單元測(cè)試。1.6.1 單元測(cè)試單元測(cè)試Android Studio 3.2版本在創(chuàng)建項(xiàng)目時(shí),會(huì)默認(rèn)在app/src/androidTest和app/src/test文件夾中創(chuàng)建Android單元測(cè)試類(lèi)ExampleInstrumentedTest和Junit單元測(cè)試類(lèi)ExampleUnitTest。Android單元測(cè)試類(lèi)ExampleInstrumentedTest使用RunWith(AndroidJUnit4.class)注解ExampleInstrumentedTest類(lèi)Test注解類(lèi)中的方法Junit單元測(cè)試類(lèi)ExampleUnitTestTest注

20、解類(lèi)中的方法1.6.1 單元測(cè)試Android單元測(cè)試ExampleInstrumentedTest.java類(lèi)中的代碼 package cn.itcast.helloworld;RunWith(AndroidJUnit4.class)public class ExampleInstrumentedTest Test public void useAppContext() / Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals(c

21、n.itcast.helloworld, appContext.getPackageName(); 斷言,期望兩個(gè)參數(shù)值相等注解類(lèi)1.6.1 單元測(cè)試注解方法測(cè)試結(jié)果正常測(cè)試結(jié)果錯(cuò)誤1.6.1 單元測(cè)試Junit單元測(cè)試ExampleInstrumentedTest.java類(lèi)中的代碼package cn.itcast.helloworld;public class ExampleUnitTest Test public void addition_isCorrect() assertEquals(4, 2 + 2); 斷言,期望兩個(gè)參數(shù)值相等1.6.1 單元測(cè)試注解方法測(cè)試結(jié)果正常測(cè)試結(jié)果錯(cuò)

22、誤1.6.1 單元測(cè)試注意Android Studio 3.2版本在創(chuàng)建項(xiàng)目時(shí),會(huì)自動(dòng)在build.gradle文件中添加單元測(cè)試的支持庫(kù),如果在進(jìn)行單元測(cè)試時(shí),程序中的build.gradle文件中沒(méi)有添加單元測(cè)試的支持庫(kù),則需要手動(dòng)進(jìn)行添加。dependencies . testImplementation junit:junit:4.12 androidTestImplementation com.android.support.test:runner:1.0.2 androidTestImplementation com.android.support.test.espresso:es

23、presso-core:3.0.21.6.1 單元測(cè)試LogCat的使用LogCat是Android中的命令行工具,用于獲取程序從啟動(dòng)到關(guān)閉的日志信息。Log類(lèi)所輸出的日志內(nèi)容分為六個(gè)級(jí)別。1.6.2 LogCat的使用級(jí)別Log類(lèi)中的靜態(tài)方法VerboseLog.v()DebugLog.d()InfoLog.i()WarningLog.w()ErrorLog.e()AssertLog.wtf()LogCat的使用 Log.v(MainActivity, Verbose); Log.d(MainActivity,Degug); Log.i(MainActivity,Info); Log.w(M

24、ainActivity, Warning); Log.e(MainActivity, Error); Log.wtf(MainActivity,Assert);打印信息的標(biāo)簽需要打印的信息1.6.2 LogCat的使用測(cè)試結(jié)果1.6.2 LogCat的使用1.6.2 LogCat的使用過(guò)濾顯示過(guò)濾器名稱(chēng)根據(jù)定義的TAG過(guò)濾信息點(diǎn)擊創(chuàng)建完成過(guò)濾顯示除了設(shè)置過(guò)濾器過(guò)濾所需的信息外,還可以輸入TAG信息、根據(jù)Log級(jí)別等方式過(guò)濾信息。LogCat區(qū)域中日志信息根據(jù)級(jí)別不同顯示不同的顏色1.6.2 LogCat的使用級(jí)別顯示信息日志信息顏色verbose(V)全部信息黑色debug(D)調(diào)試信息藍(lán)色i

25、nfo(I)一般信息綠色warning(W)警告信息橙色error(E)錯(cuò)誤信息紅色assert斷言失敗后的錯(cuò)誤消息紅色本章主要講解了Android的基礎(chǔ)知識(shí),首先介紹了Android的發(fā)展歷史以及體系結(jié)構(gòu),然后講解Android開(kāi)發(fā)環(huán)境的搭建,接著開(kāi)發(fā)了一個(gè)HelloWorld程序,幫助大家了解Android項(xiàng)目的創(chuàng)建、程序的結(jié)構(gòu),以及資源文件的使用。最后介紹了程序調(diào)試,包括單元測(cè)試和LogCat的使用。通過(guò)本章的學(xué)習(xí),希望讀者能對(duì)Android有一個(gè)大致的了解,并會(huì)獨(dú)立搭建Android開(kāi)發(fā)環(huán)境,為后續(xù)學(xué)習(xí)Android知識(shí)做好鋪墊。1.7 本章小結(jié) 本章作業(yè) 簡(jiǎn)述Android系統(tǒng)架構(gòu)包

26、含的層次以及各層的特點(diǎn)。簡(jiǎn)述 Log類(lèi)輸出日志內(nèi)容的級(jí)別和對(duì)應(yīng)Log類(lèi)中的方法。 預(yù)習(xí)作業(yè)簡(jiǎn)述Android線(xiàn)性布局的特點(diǎn)。簡(jiǎn)述Android相對(duì)布局的特點(diǎn)。Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)第2章 Android常見(jiàn)界面布局 界面布局編寫(xiě)方式 View視圖 常見(jiàn)界面布局簡(jiǎn)述Android系統(tǒng)架構(gòu)包含的層次以及各層的特點(diǎn)。簡(jiǎn)述 Log類(lèi)輸出日志內(nèi)容的級(jí)別和對(duì)應(yīng)Log類(lèi)中的方法。作業(yè)點(diǎn)評(píng)簡(jiǎn)述Android相對(duì)布局的特點(diǎn)。簡(jiǎn)述Android線(xiàn)性布局的特點(diǎn)。預(yù)習(xí)檢查3約束布局重點(diǎn)了解掌握2View視圖界面布局的編寫(xiě)方式布局的使用學(xué)會(huì)搭建常用布局1學(xué)習(xí)目標(biāo)2.1 View視圖 2.2 界面布局編

27、寫(xiě)方式2.3 常見(jiàn)界面布局 主講內(nèi)容Speech content主講內(nèi)容View視圖所有的UI元素都是通過(guò)View與ViewGroup構(gòu)建的,對(duì)于一個(gè)Android應(yīng)用的用戶(hù)界面來(lái)說(shuō),ViewGroup作為容器盛裝界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。2.1 View視圖2.1 View視圖 2.2 界面布局編寫(xiě)方式2.3 常見(jiàn)界面布局 主講內(nèi)容Speech content主講內(nèi)容界面布局編寫(xiě)方式界面布局編寫(xiě)方式在XML文件中編寫(xiě)布局:推薦此種方式布局有效的將界面中布局的代碼和Java代碼隔離,使程序的結(jié)構(gòu)更加清晰。在Java代碼中編寫(xiě)布局在A(yíng)ndroid中

28、所有布局和控件的對(duì)象都可以通過(guò)new關(guān)鍵字創(chuàng)建出來(lái),將創(chuàng)建的View控件添加到ViewGroup布局中,從而實(shí)現(xiàn)View控件在布局界面中顯示。2.2 界面布局編寫(xiě)方式在XML文件中編寫(xiě)布局 相對(duì)布局繼承自ViewGroupTextView控件繼承自View2.2 界面布局編寫(xiě)方式設(shè)置文字的樣式在Java代碼中編寫(xiě)布局RelativeLayout relativeLayout = new RelativeLayout(this);RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( RelativeLayout

29、.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);/addRule參數(shù)對(duì)應(yīng)RelativeLayout XML布局的屬性params.addRule(RelativeLayout.CENTER_IN_PARENT); /設(shè)置居中顯示TextView textView = new TextView(this); /創(chuàng)建TextView控件textView.setText(Java 代碼實(shí)現(xiàn)界面布局); /設(shè)置TextView的文字內(nèi)容textView.setTextColor(Color.RED); /設(shè)置

30、TextView的文字顏色textView.setTextSize(18); /設(shè)置TextView的文字大小/添加TextView對(duì)象和TextView的布局屬性relativeLayout.addView(textView, params);setContentView(relativeLayout); /設(shè)置在A(yíng)ctivity中顯示RelativeLayout2.2 界面布局編寫(xiě)方式2.1 View視圖 2.2 界面布局編寫(xiě)方式2.3 常見(jiàn)界面布局 主講內(nèi)容Speech content主講內(nèi)容五種常用布局線(xiàn)性布局相對(duì)布局幀布局表格布局約束布局特點(diǎn):以水平或垂直方向排列特點(diǎn):通過(guò)相對(duì)定位排

31、列特點(diǎn):開(kāi)辟空白區(qū)域,幀里的 控件(層)疊加特點(diǎn):表格形式排列特點(diǎn):可視化的方式編寫(xiě)布局2.3 常見(jiàn)界面布局布局的通用屬性Android系統(tǒng)提供的五種常用布局直接或者間接繼承自ViewGroup,因此它們也支持在ViewGroup中定義的屬性,這些屬性可以看作是布局的通用屬性。2.3.1 布局的通用屬性屬性名稱(chēng)功能描述android:id設(shè)置布局的標(biāo)識(shí)android:layout_width設(shè)置布局的寬度android: layout_height設(shè)置布局的寬度android:background設(shè)置布局的背景android:layout_margin設(shè)置當(dāng)前布局與屏幕邊界或與周?chē)丶木嚯xa

32、ndroid:padding設(shè)置當(dāng)前布局與該布局中控件的距離相對(duì)布局相對(duì)布局(RelativeLayout)是通過(guò)相對(duì)定位的方式指定子控件位置,即以其它控件或父容器為參照物,擺放控件位置。定義格式2.3.2 RelativeLayout相對(duì)布局 控件屬性功能描述android:layout_centerInParent設(shè)置當(dāng)前控件位于父布局的中央位置android:layout_centerVertical設(shè)置當(dāng)前控件位于父布局的垂直居中位置android:layout_centerHorizontal設(shè)置當(dāng)前控件位于父控件的水平居中位置android:layout_above設(shè)置當(dāng)前控件位于

33、某控件上方android:layout_below設(shè)置當(dāng)前控件位于某控件下方android:layout_toLeftOf設(shè)置當(dāng)前控件位于某控件左側(cè)android:layout_toRightOf設(shè)置當(dāng)前控件位于某控件右側(cè)android:layout_alignParentTop設(shè)置當(dāng)前控件是否與父控件頂端對(duì)齊android:layout_alignParentLeft設(shè)置當(dāng)前控件是否與父控件左對(duì)齊android:layout_alignParentRight設(shè)置當(dāng)前控件是否與父控件右對(duì)齊android:layout_alignParentBottom設(shè)置當(dāng)前控件是否與父控件底端對(duì)齊andro

34、id:layout_alignTop設(shè)置當(dāng)前控件的上邊界與某控件的上邊界對(duì)齊android:layout_alignBottom設(shè)置當(dāng)前控件的下邊界與某控件的下邊界對(duì)齊android:layout_alignLeft設(shè)置當(dāng)前控件的左邊界與某控件的左邊界對(duì)齊android:layout_alignRight設(shè)置當(dāng)前控件的右邊界與某控件的右邊界對(duì)齊2.3.2 相對(duì)布局控件位置屬性相對(duì)布局 . 2.3.2 RelativeLayout相對(duì)布局線(xiàn)性布局線(xiàn)性布局(LinearLayout)主要以水平或垂直方式來(lái)顯示界面中的控件。當(dāng)控件水平排列時(shí),顯示順序依次為從左到右,當(dāng)控件垂直排列時(shí),顯示順序依次為從

35、上到下。按鈕1按鈕2按鈕3按鈕3按鈕2按鈕12.3.3 LinearLayout線(xiàn)性布局orientation屬性 . 此屬性控制控件排列方向,包含兩個(gè)屬性值:vertical(垂直)、horizontal(水平)2.3.3 LinearLayout線(xiàn)性布局 權(quán)重LinearLayout布局中的android:layout_width屬性值不可設(shè)為wrap_content。這是因?yàn)長(zhǎng)inearLayout的優(yōu)先級(jí)比Button高,如果設(shè)置為wrap_content,則Button控件的android:layout_weight屬性會(huì)失去作用。 注意:當(dāng)控件使用權(quán)重屬性時(shí),布局寬度屬性值通常設(shè)置

36、為0dp。2.3.3 線(xiàn)性布局注意事項(xiàng)注意事項(xiàng)表格布局采用行、列的形式來(lái)管理控件,它不需要明確聲明包含多少行、多少列,而是通過(guò)在TableLayout布局中添加TableRow布局來(lái)控制表格的行數(shù),通過(guò)在TableRow布局中添加控件來(lái)控制表格的列數(shù)。 2.3.4 TableLayout表格布局 UI控件 .表格布局屬性布局屬性功能描述android:stretchColumns設(shè)置該列被拉伸android:shrinkColumns設(shè)置該列被收縮android:collapseColumns設(shè)置該列被隱藏表格布局控件屬性控件屬性功能描述android:layout_column設(shè)置該單元顯示

37、位置android:layout_span設(shè)置該單元格占據(jù)幾行,默認(rèn)為1行2.3.4 TableLayout表格布局 . 第3列可被拉伸設(shè)置控件所在列2.3.4 TableLayout表格布局幀布局幀布局(FrameLayout)用于在屏幕上創(chuàng)建一塊空白區(qū)域,添加到該區(qū)域中的每個(gè)子控件占一幀,這些幀會(huì)一個(gè)一個(gè)疊加在一起,后加入的控件會(huì)疊加在上一個(gè)控件上層所有控件都默認(rèn)顯示在屏幕左上角。定義格式2.3.5 FrameLayout幀布局 設(shè)置幀布局容器的前景圖像(始終在所有子控件之上)設(shè)置前景圖像顯示位置2.3.5 FrameLayout幀布局約束布局ConstraintLayout是Androi

38、d Studio2.2新添加的布局。它適合使用可視化的方式編寫(xiě)界面布局當(dāng)然,可視化操作的背后仍然是使用XML代碼實(shí)現(xiàn)的,只不過(guò)這些代碼是Android Studio根據(jù)我們的操作自動(dòng)生成的。相對(duì)定位居中定位和傾向Chain2.3.6 ConstraintLayout約束布局相對(duì)定位相對(duì)定位是在ConstraintLayout中創(chuàng)建布局的基本構(gòu)建方法之一。相對(duì)定位即一個(gè)控件相對(duì)于另一個(gè)控件進(jìn)行定位。ConstraintLayout布局中的控件可以在橫向和縱向上以添加約束關(guān)系的方式進(jìn)行相對(duì)定位,其中,橫向邊包括Left、Start、Right、End,縱向邊包括Top、Bottom、Baselin

39、e(文本底部的基準(zhǔn)線(xiàn))。2.3.6 ConstraintLayout約束布局屬性名稱(chēng)功能描述layout_constraintLeft_toLeftOf控件的左邊與另外一個(gè)控件的左邊對(duì)齊layout_constraintLeft_toRightOf控件的左邊與另外一個(gè)控件的右邊對(duì)齊layout_constraintRight_toLeftOf控件的右邊與另外一個(gè)控件的左邊對(duì)齊layout_constraintRight_toRightOf控件的右邊與另外一個(gè)控件的右邊對(duì)齊layout_constraintTop_toTopOf控件的上邊與另外一個(gè)控件的上邊對(duì)齊layout_constraint

40、Top_toBottomOf控件的上邊與另外一個(gè)控件的底部對(duì)齊layout_constraintBaseline_toBaselineOf控件間的文本內(nèi)容基準(zhǔn)線(xiàn)對(duì)齊layout_constraintStart_toEndOf控件的起始邊與另外一個(gè)控件的尾部對(duì)齊layout_constraintStart_toStartOf控件的起始邊與另外一個(gè)控件的起始邊對(duì)齊layout_constraintEnd_toStartOf控件的尾部與另外一個(gè)控件的起始邊對(duì)齊layout_constraintEnd_toEndOf控件的尾部與另外一個(gè)控件的尾部對(duì)齊2.3.6 約束布局相對(duì)定位關(guān)系的屬性居中定位和傾向

41、在ConstraintLayout布局中,控件可以通過(guò)添加約束的方式確定該控件在父布局(ConstraintLayout)中的相對(duì)位置。當(dāng)相同方向上(橫向或縱向),控件兩邊同時(shí)向ConstraintLayout添加約束,則控件在添加約束的方向上居中顯示。父布局中橫向居中2.3.6 ConstraintLayout約束布局居中定位和傾向在約束是同向相反的情況下,默認(rèn)控件是居中的,但是也像拔河一樣,兩個(gè)約束的力大小不等時(shí),就會(huì)產(chǎn)生傾向。2.3.6 ConstraintLayout約束布局屬性名稱(chēng)功能描述layout_constraintHorizontal_bias橫向的傾向layout_cons

42、traintVertical_bias縱向的傾向注意:如果ConstraintLayout布局中的控件在居中方向(橫向或者縱向)上和父布局(ConstraintLayout)的尺寸一致,此時(shí)該方向的居中約束和傾向沒(méi)有意義。chainChain(鏈)是一種特殊的約束,他使我們能夠?qū)σ唤M水平或豎直方向互相關(guān)聯(lián)的控件進(jìn)行統(tǒng)一管理。一組控件通過(guò)一個(gè)雙向的約束關(guān)系鏈接起來(lái),就能形成一個(gè)Chain。2.3.6 ConstraintLayout約束布局Chain的樣式2.3.6 ConstraintLayout約束布局本章主要針對(duì)Android界面布局的相關(guān)知識(shí)進(jìn)行講解。通過(guò)本章的學(xué)習(xí),我們希望讀者能夠掌握

43、View和ViewGroup的功能、掌握不同界面布局以及布局中控件屬性的使用,因?yàn)樵贏(yíng)ndroid應(yīng)用中,所有功能大部分都體現(xiàn)在界面上,界面的美觀(guān)會(huì)給用戶(hù)一個(gè)友好的體驗(yàn)。2.4 本章小結(jié) 本章作業(yè) 簡(jiǎn)述Android中有幾種布局,以及每種布局的特點(diǎn)。 預(yù)習(xí)作業(yè)簡(jiǎn)述EditText的作用。簡(jiǎn)述ListView控件的作用。Android移動(dòng)應(yīng)用基礎(chǔ)教程(第2版)第3章 Android常見(jiàn)界面控件 AlertDialog對(duì)話(huà)框的使用 自定義View 簡(jiǎn)單控件的使用ListView和RecyclerView的使用作業(yè)點(diǎn)評(píng)簡(jiǎn)述Android中有幾種布局,以及每種布局的特點(diǎn)。簡(jiǎn)述EditText的作用。簡(jiǎn)

44、述ListView控件的作用。預(yù)習(xí)檢查3AlertDialog對(duì)話(huà)框的使用重點(diǎn)了解掌握2簡(jiǎn)單控件的使用ListView的使用RecyclerView的使用1學(xué)習(xí)目標(biāo)3.4 RecyclerView的使用3.1 簡(jiǎn)單控件的使用 3.2 AlertDialog對(duì)話(huà)框的使用3.3 ListView的使用主講內(nèi)容Speech content主講內(nèi)容3.5 自定義View控件是界面組成的主要元素,用戶(hù)直接與控件進(jìn)行交互。3.1 簡(jiǎn)單控件的使用簡(jiǎn)單控件TextView ButtonEditTextImageViewRadioButtonCheckBoxToast控件的分類(lèi)TextViewTextView控

45、件用于顯示文本信息。3.1.1 TextView布局屬性功能描述android:layout_width設(shè)置TextView控件的寬度android:layout_height設(shè)置TextView控件的高度android:id設(shè)置TextView控件的唯一標(biāo)識(shí)android:background設(shè)置TextView控件的背景android:layout_margin設(shè)置當(dāng)前控件與屏幕邊界或周?chē)丶?、布局的距離android:padding設(shè)置TextView控件與該控件中內(nèi)容的距離android:text設(shè)置文本內(nèi)容android:textColor設(shè)置文字顯示的顏色android:textS

46、ize設(shè)置文字大小,推薦單位為sp3.1.1 TextView布局屬性功能描述android:gravity設(shè)置文本內(nèi)容的位置android:maxLength設(shè)置文本最大長(zhǎng)度,超出此長(zhǎng)度的文本不顯示android:lines設(shè)置文本的行數(shù),超出此行數(shù)的文本不顯示android:maxLines設(shè)置文本的最大行數(shù),超出此行數(shù)的文本不顯示。android:ellipsize設(shè)置當(dāng)文本超出TextView規(guī)定的范圍的顯示方式。android:drawableTop在文本的頂部顯示圖像android:lineSpacingExtra設(shè)置文本的行間距android:textStyle設(shè)置文本樣式,如b

47、old(粗體),italic(斜體),normal(正常)TextView 設(shè)置提示信息設(shè)置文本的顏色、大小、居中、樣式3.1.1 TextViewButtonButton控件表示按鈕,它繼承自TextView控件,既可以顯示文本,又可以顯示圖片,同時(shí)也允許用戶(hù)通過(guò)點(diǎn)擊來(lái)執(zhí)行操作,當(dāng)Button控件被點(diǎn)擊時(shí),被按下與彈起的背景會(huì)有一個(gè)動(dòng)態(tài)的切換效果,這個(gè)效果就是點(diǎn)擊效果 。3.1.2 Button點(diǎn)擊事件實(shí)現(xiàn)方式在布局文件中指定Button控件的onClick屬性方式在layout文件中指定onClick屬性在A(yíng)ctivity中實(shí)現(xiàn)這個(gè)click方法 android:onClick=click

48、 public void click(View v) Log.i(指定onClick屬性方式, button is clicked); 注意:Activity中實(shí)現(xiàn)的方法名稱(chēng)要與onClick屬性設(shè)置的名稱(chēng)一致。3.1.2 Button點(diǎn)擊事件實(shí)現(xiàn)方式匿名內(nèi)部類(lèi)方式在A(yíng)ctivity中添加匿名內(nèi)部類(lèi) btn.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) Log.i(匿名內(nèi)部類(lèi)方式, button is clicked); );3.1.2 Button點(diǎn)擊事件實(shí)現(xiàn)方式接口方式設(shè)

49、置Button控件的點(diǎn)擊監(jiān)聽(tīng)事件接著當(dāng)前Activity實(shí)現(xiàn)OnClickListener接口然后實(shí)現(xiàn)OnClickListener接口中的方法 public class MainActivity extends AppCompatActivity implements View.onClickListener Override public void onClick(View v) Log.i(接口方式, button is clicked); btn.setOnClickListener(this);this代表onClickListener的引用3.1.2 ButtonEditViewE

50、ditText表示編輯框,它是TextView的子類(lèi),用戶(hù)可在此控件中輸入信息。3.1.3 EditView屬性名稱(chēng)功能描述android:hint控件中內(nèi)容為空時(shí)顯示的提示文本信息android:textColorHint控件中內(nèi)容為空時(shí)顯示的提示文本信息的顏色android:password輸入文本框中的內(nèi)容顯示為“.”android:phoneNumber設(shè)置輸入文本框中的內(nèi)容只能是數(shù)字android:minLines設(shè)置文本的最小行數(shù)android:scrollHorizontally設(shè)置文本信息超出EditText的寬度情況下,是否出現(xiàn)橫拉條android:editable設(shè)置是否可

51、編輯EditView 設(shè)置提示信息設(shè)置最大行數(shù)設(shè)置文本顏色、大小、樣式繼承自TextView的屬性3.1.3 EditViewImageView ImageView表示圖片,它繼承自View,可以加載各種圖片資源。3.1.4 ImageView屬性名稱(chēng)功能描述android:layout_width設(shè)置ImageView控件的寬度android:layout_height設(shè)置ImageView控件的高度android:id設(shè)置ImageView控件的唯一標(biāo)識(shí)android:background設(shè)置ImageView控件的背景android:layout_margin設(shè)置當(dāng)前控件與屏幕邊界或周?chē)?/p>

52、控件的距離android:src設(shè)置ImageView控件需要顯示的圖片資源android:scaleType將圖片資源縮放或移動(dòng),以適應(yīng)ImageView控件的寬高android:tint將圖片渲染成指定的顏色I(xiàn)mageView 設(shè)置背景圖片設(shè)置前景圖片3.1.4 ImageViewRadioButtonRadioButton為單選按鈕,android:checked屬性指定是否選中的狀態(tài)。RadioGroup是單選組合框,可容納多個(gè)RadioButton,并把它們組合在一起,實(shí)現(xiàn)單選狀態(tài)。語(yǔ)法格式3.1.5 RadioButton . 控制RadioButton按鈕的排列方向3.1.5 R

53、adioButtonCheckBoxCheckBox表示復(fù)選框,它是Button的子類(lèi),用于實(shí)現(xiàn)多選功能,通過(guò)android:checked屬性指定CheckBox控件是否選中的狀態(tài)。3.1.6 CheckBox 3.1.6 CheckBoxCheckBoxToast是Android系統(tǒng)提供的輕量級(jí)信息提醒機(jī)制,用于向用戶(hù)提示即時(shí)消息,它顯示在應(yīng)用程序界面的最上層,顯示一段時(shí)間后自動(dòng)消失不會(huì)打斷當(dāng)前操作,也不獲得焦點(diǎn)。3.1.7 ToastToast.makeText(MainActivity.this,WIFI已斷開(kāi),Toast.LENGTH_SHORT).show();3.1.7 Toas

54、t當(dāng)前組件的上下文環(huán)境提示的字符串信息顯示信息的時(shí)長(zhǎng)顯示信息3.4 RecyclerView的使用3.1 簡(jiǎn)單控件的使用 3.2 AlertDialog對(duì)話(huà)框的使用3.3 ListView的使用主講內(nèi)容Speech content主講內(nèi)容3.5 自定義ViewAlertDialog對(duì)話(huà)框概述AlertDialog對(duì)話(huà)框用于提示一些重要信息或者顯示一些需要用戶(hù)額外交互的內(nèi)容。它一般以小窗口的形式展示在界面上。使用AlertDialog創(chuàng)建的對(duì)話(huà)框一般包含標(biāo)題、內(nèi)容和按鈕三個(gè)區(qū)域。結(jié)構(gòu)圖3.2.1AlertDialog對(duì)話(huà)框概述創(chuàng)建AlertDialog對(duì)話(huà)框步驟1、調(diào)用AlertDialog的靜

55、態(tài)內(nèi)部類(lèi)Builder創(chuàng)建AlertDialog.Builder的對(duì)象。2、調(diào)用AlertDialog.Builder的setTitle()和setIcon()方法分別設(shè)置AlertDialog對(duì)話(huà)框的標(biāo)題名稱(chēng)和圖標(biāo)。3、調(diào)用AlertDialog.Builder的setMessage()、setSingleChoiceItems()或者setMultiChoiceItems()方法設(shè)置AlertDialog對(duì)話(huà)框的內(nèi)容為簡(jiǎn)單文本、單選列表或者為多選列表。4、調(diào)用AlertDialog.Builder的setPositiveButton()和setNegativeButton()方法設(shè)置Ale

56、rtDialog對(duì)話(huà)框的確定和取消按鈕。5、調(diào)用AlertDialog.Builder的create()方法創(chuàng)建AlertDialog對(duì)象。6、調(diào)用AlertDialog對(duì)象的show()方法顯示該對(duì)話(huà)框。7、調(diào)用AlertDialog對(duì)象的dismiss()方法取消該對(duì)話(huà)框。3.2.1AlertDialog對(duì)話(huà)框概述普通對(duì)話(huà)框普通對(duì)話(huà)框的內(nèi)容區(qū)域一般顯示簡(jiǎn)單的文本信息。通過(guò)setMessage()方法設(shè)置的。 AlertDialog dialog; dialog = new AlertDialog.Builder(this) .setTitle(普通對(duì)話(huà)框) .setIcon(R.mipma

57、p.ic_launcher) .setMessage(是否退出應(yīng)用?) .setPositiveButton(確定,.) .setNegativeButton(取消,.) .create(); dialog.show();聲明對(duì)象綁定當(dāng)前窗口設(shè)置標(biāo)題設(shè)置圖標(biāo)設(shè)置提示信息添加確定按鈕添加取消按鈕創(chuàng)建對(duì)話(huà)框顯示對(duì)話(huà)框3.2.2 普通對(duì)話(huà)框單選對(duì)話(huà)框單選對(duì)話(huà)框的內(nèi)容區(qū)域顯示為單選列表。單選列表通過(guò)AlertDialog.Builder對(duì)象調(diào)用setSingleChoiceItem()方法設(shè)置的。 AlertDialog dialog; AlertDialog.Builder builder = ne

58、w AlertDialog.Builder(this) .setTitle(設(shè)置字體大小) /設(shè)置標(biāo)題 . .setSingleChoiceItems(new String小號(hào), 默認(rèn), 中號(hào), 大號(hào), 超大, textSize, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ) .setPositiveButton(“確定”,.)/添加“確定”按鈕 .setNegativeButton(“取消”,.); dialog = builder.create()

59、; dialog.show();設(shè)置選項(xiàng)內(nèi)容建立監(jiān)聽(tīng),允許被點(diǎn)擊3.2.3 單選對(duì)話(huà)框默認(rèn)選項(xiàng)多選對(duì)話(huà)框多選對(duì)話(huà)框的內(nèi)容區(qū)域顯示為多選列表。多選列表通過(guò)AlertDialog.Builder對(duì)象調(diào)用setMultiChoiceItems()方法設(shè)置的。 AlertDialog dialog; AlertDialog.Builder builder = new AlertDialog.Builder(this) . .setTitle(請(qǐng)?zhí)砑优d趣愛(ài)好!) .setIcon(R.mipmap.ic_launcher) .setMultiChoiceItems(items, checkedItems

60、, new DialogInterface.OnMultiChoiceClickListener() .) dialog = builder.create(); dialog.show();創(chuàng)建數(shù)組,設(shè)置選項(xiàng)內(nèi)容多選列表中默認(rèn)勾選的選項(xiàng)角標(biāo)多選列表的監(jiān)聽(tīng)接口3.2.4 多選對(duì)話(huà)框自定義對(duì)話(huà)框在A(yíng)ndroid程序中由于界面風(fēng)格的不同,一般不直接使用系統(tǒng)提供的對(duì)話(huà)框,而是根據(jù)項(xiàng)目需求定義相應(yīng)的對(duì)話(huà)框樣式。具體步驟如下:創(chuàng)建布局創(chuàng)建一個(gè)自定義對(duì)話(huà)框的布局文件(custom_dialog.xml),布局中需要設(shè)定對(duì)話(huà)框的標(biāo)題、對(duì)話(huà)框內(nèi)容以及確定和取消按鈕。創(chuàng)建自定義對(duì)話(huà)框創(chuàng)建CommonDialog類(lèi)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論