版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目1你好Android——第一個(gè)Android應(yīng)用本項(xiàng)目學(xué)習(xí)任務(wù)1.Android簡介2.Android開發(fā)環(huán)境搭建3.Android的第一個(gè)應(yīng)用4.Android程序調(diào)試項(xiàng)目展示
ProjectDemonstration環(huán)境搭建Environment
Building項(xiàng)目展示
ProjectDemonstration第一個(gè)應(yīng)用TheFirstApp項(xiàng)目展示
ProjectDemonstration調(diào)試Debugging學(xué)習(xí)及能力目標(biāo)Learningandabilityobjectives1.了解常見的移動(dòng)操作系統(tǒng)。
Learnaboutcommonmobileoperatingsystems.2.能使用AndroidStudio搭建Android開發(fā)環(huán)境。
CanuseAndroidStudiotobuildAndroiddevelopmentenvironment.3.能使用AndroidStudio創(chuàng)建工程。
CanuseAndroidStudiotocreateprojects.4.創(chuàng)建Android模擬器(AVD)。
CreateAndroidSimulator.5.程序調(diào)試。Programdebugging.1.Android簡介PART01Android操作系統(tǒng)Android OperatingSystemAndroid操作系統(tǒng)AndroidOperatingSystemAndroid是一種基于Linux的自由及開放源代碼的操作系統(tǒng),是一個(gè)功能強(qiáng)大的移動(dòng)操作系統(tǒng),是第一個(gè)真正為手機(jī)打造的開放性系統(tǒng)。
AndroidisafreeandopensourceoperatingsystembasedonLinux,apowerfulmobileoperatingsystem,andthefirstrealopensystemformobilephones.Android操作系統(tǒng)AndroidOperatingSystemAndroid操作系統(tǒng)最初是由安迪·魯賓(AndyRubin)開發(fā)出的,2005年被Google收購,并于2007年11月5日正式向外界展示了這款系統(tǒng)。
TheAndroidoperatingsystemwasoriginallydevelopedbyAndyRubin.ItwasacquiredbyGooglein2005andofficiallydemonstratedtotheoutsideworldonNovember5,2007.Android操作系統(tǒng)AndroidOperatingSystemAndroid操作系統(tǒng)AndroidOperatingSystem應(yīng)用框架:應(yīng)用框架最常被應(yīng)用開發(fā)者使用。Applicationframework:Theapplicationframeworkisusedmostoftenbyapplicationdevelopers.BinderIPC:Binder進(jìn)程間通信(IPC)機(jī)制使應(yīng)用框架能夠跨越進(jìn)程邊界并調(diào)用Android系統(tǒng)服務(wù)代碼,這使得高級(jí)框架API能與Android系統(tǒng)服務(wù)進(jìn)行交互。BinderIPC:TheBinderInter-ProcessCommunication(IPC)mechanismallowstheapplicationframeworktocrossprocessboundariesandcallintotheAndroidsystemservicescode.ThisenableshighlevelframeworkAPIstointeractwithAndroidsystemservices.Android操作系統(tǒng)AndroidOperatingSystem系統(tǒng)服務(wù):系統(tǒng)服務(wù)是專注于特定功能的模塊化組件,例如窗口管理器、搜索服務(wù)或通知管理器。應(yīng)用框架API所提供的功能可與系統(tǒng)服務(wù)通信,以訪問底層硬件。Systemservices:Systemservicesaremodular,focusedcomponentssuchasWindowManager,SearchService,orNotificationManager.FunctionalityexposedbyapplicationframeworkAPIscommunicateswithsystemservicestoaccesstheunderlyinghardware.硬件抽象層(HAL):HAL可定義一個(gè)標(biāo)準(zhǔn)接口以供硬件供應(yīng)商實(shí)現(xiàn),這可讓Android忽略較低級(jí)別的驅(qū)動(dòng)程序?qū)崿F(xiàn)。Hardwareabstractionlayer(HAL):AHALdefinesastandardinterfaceforhardwarevendorstoimplement,whichenablesAndroidtobeagnosticaboutlower-leveldriverimplementations.Android操作系統(tǒng)AndroidOperatingSystemLinux內(nèi)核:Android使用的Linux內(nèi)核版本包含一些特殊的補(bǔ)充功能,例如低內(nèi)存終止守護(hù)進(jìn)程(一個(gè)內(nèi)存管理系統(tǒng),可更主動(dòng)地保留內(nèi)存)、喚醒鎖定(一種PowerManager系統(tǒng)服務(wù))、BinderIPC驅(qū)動(dòng)程序,以及對(duì)移動(dòng)嵌入式平臺(tái)來說非常重要的其他功能。Linuxkernel.DevelopingyourdevicedriversissimilartodevelopingatypicalLinuxdevicedriver.AndroidusesaversionoftheLinuxkernelwithafewspecialadditionssuchasLowMemoryKiller(amemorymanagementsystemthatismoreaggressiveinpreservingmemory),wakelocks(aPowerManagersystemservice),theBinderIPCdriver,andotherfeaturesimportantforamobileembeddedplatform.PART02移動(dòng)通信MobileCommunication移動(dòng)通信MobileCommunication第一代通信技術(shù)(1G):模擬通信系統(tǒng)、僅限語音的蜂窩電話標(biāo)準(zhǔn)。Firstgenerationcommunicationtechnology(1G):analogcommunicationsystem,voiceonlycellulartelephonestandard.第二代通信技術(shù)(2G):是指第2代移動(dòng)通信技術(shù),代表為GSM,以數(shù)字語音傳輸技術(shù)為核心。傳輸速度9.6k/s。Secondgenerationcommunicationtechnology(2G):referstothesecondgenerationmobilecommunicationtechnology,representedbyGSM,withdigitalvoicetransmissiontechnologyasthecore.Thetransmissionspeedis9.6k/s.第三代通信技術(shù)(3G):是指將無線通信與國際互聯(lián)網(wǎng)等多媒體通信結(jié)合的新一代移動(dòng)通信系統(tǒng)。3G通信網(wǎng)在室內(nèi)、室外和行車的環(huán)境中能夠分別支持至少2M/s、384K/s以及144K/s的傳輸速度,包括WCDMA、CDMA2000、TD-SCDMA。Thethirdgenerationcommunicationtechnology(3G)referstoanewgenerationofmobilecommunicationsystemthatcombineswirelesscommunicationwithmultimediacommunicationsuchastheInternet.3Gcommunicationnetworkcansupporttransmissionspeedsofatleast2M/s,384K/sand144K/srespectivelyinindoor,outdooranddrivingenvironments,includingWCDMA,CDMA2000andTD-SCDMA.第四代通信技術(shù)(4G):又稱IMT-Advanced技術(shù),它包括了TD-LTE和FDD-LTE。4G通信網(wǎng)最高甚至可以達(dá)到100M/s的傳輸速度。Fourthgenerationcommunicationtechnology(4G)alsoknownasIMTAdvancedtechnology,itincludesTD-LTEandFDD-LTE.4Gcommunicationnetworkcanevenreachthetransmissionspeedof100M/s.移動(dòng)通信MobileCommunication第五代通信技術(shù)(5G):最新一代蜂窩移動(dòng)通信技術(shù),包括獨(dú)立組網(wǎng)(SA)、非獨(dú)立組網(wǎng)(NSA),傳輸速度可達(dá)20Gbps。5G網(wǎng)絡(luò)的主要目標(biāo)是讓終端用戶始終處于聯(lián)網(wǎng)狀態(tài)。5G網(wǎng)絡(luò)將來支持的設(shè)備遠(yuǎn)遠(yuǎn)不止是智能手機(jī)——它還要支持智能手表、健身腕帶、智能家庭設(shè)備等。Thefifthgenerationcommunicationtechnology(5G):thelatestgenerationofcellularmobilecommunicationtechnology,includingindependentnetworking(SA)andnonindependentnetworking(NSA),withtransmissionspeedupto20Gbps.Themaingoalofthe5Gnetworkistokeeptheendusersconnectedallthetime.Inthefuture,5Gnetworkwillsupportmorethansmartphones-itwillalsosupportsmartwatches,fitnesswristbands,smarthomedevices,etc.移動(dòng)通信MobileCommunicationPART03移動(dòng)操作系統(tǒng)Mobile OperatingSystemAndroid:開源操作系統(tǒng),開放性高、碎片化嚴(yán)重,應(yīng)用開發(fā)語言為Java\KotlinAndroid:opensourceoperatingsystemwithhighopennessandseriousfragmentation.TheapplicationdevelopmentlanguageisJava\KotliniOS:閉源操作系統(tǒng),開放性差、安全性高,應(yīng)用開發(fā)語言為Objective-C\SwiftiOS:closedsourceoperatingsystem,pooropenness,highsecurity,andtheapplicationdevelopmentlanguageisObjective-C\Swift移動(dòng)操作系統(tǒng)MobileOperatingSystem鴻蒙操作系統(tǒng)(HarmonyOS)是一款全新的面向全場景的分布式操作系統(tǒng),將人、設(shè)備、場景有機(jī)地聯(lián)系在一起,將消費(fèi)者在全場景生活中接觸的多種智能終端實(shí)現(xiàn)極速發(fā)現(xiàn)、極速連接、硬件互助、資源共享,用合適的設(shè)備提供場景體驗(yàn)。HarmonyOS
isanewdistributedoperatingsystemfacingthewholescene,organicallyconnectspeople,devicesandscenes,realizesrapiddiscovery,rapidconnection,hardwaremutualaidandresourcesharingofvariousintelligentterminalsthatconsumerscontactinthewholescenelife,andprovidessceneexperiencewithappropriatedevices.移動(dòng)操作系統(tǒng)MobileOperatingSystem鴻蒙操作系統(tǒng)采用eTS(extendedTypeScript)\JS(JavaScript)\Java語言進(jìn)行開發(fā)。HarmonyOSisdevelopedwitheTS(extendedTypeScript)orJS(JavaScript)orJavalanguage.移動(dòng)操作系統(tǒng)MobileOperatingSystem2.搭建Android開發(fā)環(huán)境SettingupAndroidDevelopmentEnvironment目標(biāo)Target01AndroidStudioinstallationAndroidStudio的安裝02AndroidSDKinstallationAndroidSDK的安裝03CreateAndroidVirtualDevice(AVD)創(chuàng)建Android模擬器(AVD)Android開發(fā)需要的工具ToolsforAndroiddevelopment1.JDK2.AndroidStudio3.AndroidSDKAndroid開發(fā)需要的工具ToolsforAndroiddevelopment1.JDKJDK是Java語言開發(fā)工具包(JavaDevelopmentKit),它包含了Java運(yùn)行環(huán)境、工具、基礎(chǔ)類庫等。目前,Android支持Java7全部功能和Java8的部分功能。JDKisadevelopmentkitforJava(JavaDevelopmentKit),containingtheJavaruntimeenvironment,tools,basicclasslibrary,etc.Sofar,AndroidsupportsallfunctionsofJava7andsomefunctionsofJava8.
AndroidStudio的下載AndroidStudioDownloadAndroidStudio新版本會(huì)自動(dòng)配置JDK環(huán)境ThenewversionofAndroidStudiowillautomaticallyconfiguretheJDKenvironmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopment2.AndroidStudioGoogle官方推出的Android集成開發(fā)環(huán)境(IntegratedDevelopmentEn--vironment,IDE)。TheofficialAndroidIntegratedDevelopmentEnvironment(IDE)pro--videdbyGoogle.AndroidStudio的下載AndroidStudioDownloadAndroid開發(fā)者官網(wǎng)OfficialwebsiteofAndroiddeveloper/AndroidStudio的下載AndroidStudioDownloadAndroid開發(fā)需要的工具ToolsforAndroiddevelopment3.AndroidSDK(SoftwareDevelopmentKit)Google官方提供的Android軟件開發(fā)工具包,可以利用AndroidStudio導(dǎo)入。TheofficialAndroiddevelopmentkitprovidedbyGooglecanbeimportedbyAndroidStudio.Android開發(fā)需要的工具ToolsforAndroiddevelopment4.Android模擬器-AVD
(AndroidVirtualDevice)安卓模擬器是一個(gè)可以運(yùn)行在計(jì)算機(jī)上的虛擬設(shè)備。AVDisavirtualdevicethatcanrunonacomputer.Android應(yīng)用運(yùn)行環(huán)境Android虛擬機(jī)真實(shí)的Android設(shè)備Android開發(fā)需要的工具ToolsforAndroiddevelopment打開AVDManager菜單:Tools->AVDManager快捷圖標(biāo):Android開發(fā)需要的工具ToolsforAndroiddevelopmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopmentAndroid開發(fā)需要的工具ToolsforAndroiddevelopment運(yùn)行虛擬機(jī)編輯虛擬機(jī)更多Android開發(fā)需要的工具ToolsforAndroiddevelopment關(guān)機(jī)音量旋轉(zhuǎn)拍照返回HOMEOverviewAndroid開發(fā)需要的工具ToolsforAndroiddevelopment3.第一個(gè)Android應(yīng)用TheFirstAndroidApp掌握項(xiàng)目創(chuàng)建的方法。掌握編寫簡單Android程序的步驟。Masterthemethodofprojectcreation.MasterthestepsofwritingsimpleAndroidprograms.HelloAndroid目標(biāo):Target:HelloAndroid
創(chuàng)建新的Android應(yīng)用項(xiàng)目,項(xiàng)目名為‘HelloAndroid’
。
運(yùn)行該項(xiàng)目,在模擬器上顯示‘HelloAndroid!’字符串
。
CreateanewAndroidapplicationprojectnamed‘HelloAndroid’.Runtheprojectanddisplay’HelloAndroid!’ontheAVD.Mission:任務(wù):HelloAndroid步驟:Step:1.創(chuàng)建項(xiàng)目:3.啟動(dòng)模擬器:創(chuàng)建名為HelloAndroid的項(xiàng)目指定包名為cn.jssvc.helloAndroid4.運(yùn)行程序:點(diǎn)擊工具欄中的運(yùn)行按鈕運(yùn)行程序點(diǎn)擊工具欄中【AVDManager】標(biāo)簽啟動(dòng)模擬器1.CreateProject:
CreateanewAndroidapplicationprojectnamed‘HelloAndroid’,Specifythepackagenameas‘cn.Jssvc.helloAndroid’,ModifyTextView.2.Programming:ModifytheparametersofTextView3.StartAVD:Clickthe[AVDManager]tabinthetoolbar,andstarttheAVD.4.Runtheprogram:ClicktheRunbuttoninthetoolbartoruntheprogram.修改TextView參數(shù)2.代碼編程:項(xiàng)目演示Operation第一次打開AndroidStudio創(chuàng)建項(xiàng)目NewProject多次打開AndroidStudio后創(chuàng)建項(xiàng)目NewProject創(chuàng)建項(xiàng)目NewProjectAndroidStudio3.5.3AndroidStudio2022.3.1本課以Java為編程語言,早期版本AndroidStudio選擇EmptyActivity模版,新版AndroidStudio選擇EmptyViewsActivity模版創(chuàng)建項(xiàng)目NewProject創(chuàng)建項(xiàng)目NewProject下載gradle創(chuàng)建項(xiàng)目NewProjectSync完成Android應(yīng)用運(yùn)行環(huán)境Android虛擬機(jī)真實(shí)的Android設(shè)備運(yùn)行項(xiàng)目RunProject打開AVDManager菜單:Tools->AVDManager快捷圖標(biāo):運(yùn)行項(xiàng)目RunProject啟動(dòng)虛擬機(jī)運(yùn)行項(xiàng)目RunProject選擇app、虛擬機(jī),點(diǎn)擊即可運(yùn)行項(xiàng)目運(yùn)行項(xiàng)目RunProject4.Android程序調(diào)試學(xué)習(xí)內(nèi)容DeviceFileExplorer0102LogcatDeviceFileExplorer是Android設(shè)備的文件瀏覽器點(diǎn)擊AndroidStudio右邊欄的DeviceFileExplorer可以打開DeviceFileExplorerDeviceFileExplorerDeviceFileExplorer新建文件、文件夾(New->File/Directory)下載文件(SaveAs…)上傳文件(Upload)刪除文件(Delete…)同步文件(Synchronize)復(fù)制路徑(CopyPath)DeviceFileExplorerDeviceFileExplorerLogcat是Android中的日志工具,用于獲取程序從啟動(dòng)到關(guān)閉的日志信息,包括調(diào)試信息、警告信息、錯(cuò)誤信息、普通信息及冗余信息。不同類型的信息具有不同的顯示顏色,方便開發(fā)人員觀察。Log類所輸出的日志內(nèi)容分為五個(gè)級(jí)別,分別對(duì)應(yīng)Log類中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()靜態(tài)方法。LogcatLogcat方法名方法說明參數(shù)說明Log.v(Stringtag,Stringmsg)輸出冗余信息tag:日志標(biāo)簽,可用于過濾日志信息
msg:輸出的日志信息Log.d(Stringtag,Stringmsg)輸出調(diào)試信息Log.i(Stringtag,Stringmsg)輸出普通信息Log.w(Stringtag,Stringmsg)輸出警告信息Log.e(Stringtag,Stringmsg)輸出錯(cuò)誤信息Log類中主要用到的方法LogcatLogcatLogcat:View->ToolWindows->Logcat點(diǎn)擊AndroidStudio下邊欄的Logcat即可打開LogcatLogcatLogcat過濾框可進(jìn)行Log過濾也可編輯過濾配置LogcatLogcatLog過濾器設(shè)置LogcatLogcat感謝觀看Thankyou項(xiàng)目2個(gè)性名片——界面布局本項(xiàng)目學(xué)習(xí)任務(wù)1.布局管理概述2.線性布局3.約束布局4.表格布局5.幀布局1.布局管理概述布局是Android應(yīng)用程序的界面定義。布局中的所有界面元素,都是視圖(View)對(duì)象或視圖組(ViewGroup)對(duì)象。一個(gè)布局首先是一個(gè)視圖組對(duì)象,然后在視圖組對(duì)象中添加子視圖組對(duì)象或者視圖對(duì)象。布局布局管理Layouts可通過兩種方式來定義布局:XML定義和代碼定義XML定義運(yùn)用AndroidStudio可以快速設(shè)計(jì)UI布局及其包含的界面元素代碼定義布局是在Java或Kotlin代碼中定義布局布局的定義方式布局管理Layouts在每個(gè)應(yīng)用程序創(chuàng)建時(shí)會(huì)默認(rèn)包含一個(gè)主界面布局,該布局位于res/layout目錄中實(shí)際開發(fā)中每個(gè)應(yīng)用程序都包含多個(gè)界面,而程序默認(rèn)提供的一個(gè)主界面布局無法滿足需求,因此經(jīng)常會(huì)在程序中添加多個(gè)布局。布局的定義方式布局管理Layouts常用布局約束布局通過相對(duì)定位排列線性布局以水平或垂直方向排列幀布局幀里的控件(層)疊加表格布局表格形式排列布局的分類布局管理Layouts2.線性布局線性布局(LinearLayout)主要以水平或垂直方式來顯示界面中的控件。當(dāng)控件水平排列時(shí),顯示順序依次為從左到右,當(dāng)控件垂直排列時(shí),顯示順序依次為從上到下。線性布局中,每行或每列中只允許有一個(gè)子視圖或控件。線性布局LinearLayout線性布局LinearlayoutLinearLayout的最主要的屬性有:android:gravity:設(shè)置內(nèi)部控件的顯示位置。android:orientation:設(shè)置內(nèi)部控件的排列方向,常量horizontal(默認(rèn)值)表示水平排列,vertical表示垂直排列。android:layout_weight:設(shè)置內(nèi)部控件在LinearLayout中所占的權(quán)重。線性布局LinearLayout注意:當(dāng)控件使用權(quán)重屬性時(shí),布局寬度或高度屬性值通常設(shè)置為0。<Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="2"/>線性布局LinearLayout線性布局LinearLayout案例中使用了線性布局LinearLayout,在線性布局中放置了3個(gè)按鈕,這3個(gè)按鈕的寬度在水平方向的比重是1:1:2,線性布局界面的效果如上圖所示。3.約束布局SuzhouVocationalUniversity約束布局ConstraintLayout是AndroidStudio2.2版本新添加的布局。是Google在2016年的GoogleI/O大會(huì)上提出的一個(gè)可以靈活控制子控件的位置和大小的新布局。適合使用可視化方式編輯的布局。一個(gè)ViewGroup,可以在Api9以上的Android系統(tǒng)使用它。ConstraintLayoutConstraintLayoutisanewlayoutaddedinAndroidStudio2.2.ItisanewlayoutproposedbyGoogleattheGoogleI/OConferencein2016thatcanflexiblycontrolthepositionandsizeofsubcontrols.Alayoutsuitableforvisualediting.AViewGroupcanbeusedinAndroidsystemsaboveApi9.約束布局ConstraintLayoutConstraintLayout可以在不嵌套ViewGroup的情況下實(shí)現(xiàn)非常龐大、復(fù)雜的布局,實(shí)現(xiàn)扁平化。ConstraintLayout具有LinearLayout、相對(duì)布局RelativeLayout的優(yōu)點(diǎn)、特性,功能強(qiáng)大。在適應(yīng)屏幕大小變化方面更有優(yōu)勢(shì)。ConstraintLayoutcanachieveverylargeandcomplexlayoutswithoutnestingViewGroups,andachieveflattening.ConstraintLayouthastheadvantages,featuresandpowerfulfunctionsofLinearLayout.Ithasmoreadvantagesinadaptingtoscreensizechanges.約束布局ConstraintLayoutConstraintLayout減少布局的層級(jí)結(jié)構(gòu),減少布局嵌套過多時(shí)出現(xiàn)性能問題。ConstraintLayout,控件之間、控件與父布局之間具有約束關(guān)系,控件的位置是按照約束來計(jì)算的。使用ConstraintLayou布局時(shí),可以通過添加引線(Guidline)來輔助布局,所有的布局可以在界面上通過拖動(dòng)和調(diào)整來完成,相對(duì)于相對(duì)布局RelativeLayout這一點(diǎn)要方便許多,可以用“所見即所得”來總結(jié)布局,調(diào)整更方便。約束布局ConstraintLayout約束布局ConstraintLayout屬性名稱功能描述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_constraintTop_toBottomOf控件的上邊與另外一個(gè)控件的底部對(duì)齊layout_constraintBaseline_toBaselineOf控件間的文本內(nèi)容基準(zhǔn)線對(duì)齊layout_constraintStart_toEndOf控件的起始邊與另外一個(gè)控件的尾部對(duì)齊layout_constraintStart_toStartOf控件的起始邊與另外一個(gè)控件的起始邊對(duì)齊layout_constraintEnd_toStartOf控件的尾部與另外一個(gè)控件的起始邊對(duì)齊layout_constraintEnd_toEndOf控件的尾部與另外一個(gè)控件的尾部對(duì)齊約束布局ConstraintLayoutlayout_constraintLeft_toLeftOflayout_constraintEnd_toEndOflayout_constraintBaseline_toBaselineOflayout_constraintRight_toLeftOf控件的右邊與另外一個(gè)控件的左邊對(duì)齊控件的左邊與另外一個(gè)控件的左邊對(duì)齊控件的尾部與另外一個(gè)控件的尾部對(duì)齊控件間的文本內(nèi)容基準(zhǔn)線對(duì)齊約束布局ConstraintLayoutConstraintLayout布局動(dòng)態(tài)布局方便,對(duì)控件的控制能力更加強(qiáng)大,可以實(shí)現(xiàn)動(dòng)畫效果。TheConstraintLayoutlayoutisconvenientfordynamiclayout,hasmorepowerfulcontrolovercontrols,andcanachieveanimationeffects.總結(jié):ConstraintLayout的功能更加強(qiáng)大,使用起來更加方便,不論是靜態(tài)分布還是動(dòng)態(tài)分布都具有良好的支持,同時(shí)可以完成動(dòng)畫效果,性能上更加優(yōu)越。Conclusion:ConstraintLayoutismorepowerfulandconvenienttouse.Bothstaticanddynamicdistributionshavegoodsupport,anditcancompleteanimationeffectswithsuperiorperformance.約束布局ConstraintLayout4.表格布局SuzhouVocationalUniversity表格布局(TableLayout)是以表格形式排列控件的,通過行和列將界面劃分為多個(gè)單元格,每個(gè)單元格都可以添加控件。表格布局需要和TableRow配合使用,每一行都由TableRow對(duì)象組成,因此TableRow的數(shù)量決定表格的行數(shù)。而表格的列數(shù)是由包含最多控件的TableRow決定的,例如第1個(gè)TableRow有兩個(gè)控件,第2個(gè)TableRow有三個(gè)控件,則表格列數(shù)為3。表格布局TableLayout表格布局屬性布局屬性功能描述android:stretchColumns設(shè)置該列被拉伸android:shrinkColumns設(shè)置該列被收縮android:collapseColumns設(shè)置該列被隱藏表格布局控件屬性控件屬性功能描述android:layout_column設(shè)置該單元顯示位置android:layout_span設(shè)置該單元格占據(jù)幾列,默認(rèn)為1列表格布局TableLayout表格布局TableLayout5.幀布局SuzhouVocationalUniversity幀布局是一種特殊的布局,它以層疊的方式顯示布局中的多個(gè)控件幀布局主要掌握以下兩個(gè)屬性的使用:android:layout_gravityandroid:visibility幀布局FrameLayout默認(rèn)情況下,控件位于幀布局的左上角??赏ㄟ^控件的android:layout_gravity屬性控制其位置。android:layout_gravity屬性可設(shè)置為下列值:top:控件位于布局頂部。bottom:控件位于布局底部,單獨(dú)使用時(shí)等價(jià)于“l(fā)eft|bottom”。left:控件位于布局左側(cè)。right:控件位于布局右側(cè),單獨(dú)使用時(shí)等價(jià)于“top|right”。center:控件位于布局中心。center_vertical:控件位于垂直方向上的中間位置,單獨(dú)使用時(shí)等價(jià)于“l(fā)eft|center_vertical”。center_horizontal:控件位于水平方向上的中間位置,單獨(dú)使用時(shí)等價(jià)于“top|center_horizontal”。幀布局FrameLayoutgravity的中文意思就是”重心“,就是表示view橫向和縱向的??课恢胊ndroid:gravity:是對(duì)控件本身來說的,是用來設(shè)置控件本身的內(nèi)容應(yīng)該顯示在控件的什么位置,默認(rèn)值是左側(cè),也可以用來設(shè)置布局中的控件位置android:layout_gravity:是相對(duì)于包含該控件的父控件來說的,設(shè)置該控件在父控件的什么位置幀布局FrameLayoutandroid:visibilityView.VISIALBE可見,顯示到頁面View.INVISIABLE不可見,但是還是占用位置View.GONE隱藏,不可見并且不占用位置幀布局FrameLayout幀布局FrameLayout用幀布局FrameLayout,在幀布局中放置了2個(gè)按鈕,分別是按鈕1和按鈕2,按鈕1在按鈕2的上一層進(jìn)行顯示感謝觀看Thankyou項(xiàng)目3信息注冊(cè)——界面控件本項(xiàng)目學(xué)習(xí)任務(wù)1.簡單控件2.列表控件3.對(duì)話框1.簡單控件同意并繼續(xù)簡單控件SimpleViews文本視圖TextView圖片視圖ImageView文本字段EditText復(fù)選框CheckBox按鍵Button控件是界面組成的主要元素,是與用戶進(jìn)行直接交互的。簡單控件TextViewEditTextButtonRadioButtonCheckBoxImageView簡單控件SimpleViewsTextView是用于顯示文字(字符串)的控件,可在代碼中通過設(shè)置屬性改變文字的大小、顏色、樣式等。textView.setText("HelloWorld!");
intcolor=this.getResources().getColor(R.color.colorAccent);
textView.setTextColor(color);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,25);<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HelloWorld!"
android:textColor="#D81B60"
android:textSize="26sp"
/>簡單控件SimpleViewsEditText是可以進(jìn)行編輯操作的文本框,將用戶信息傳遞給Android程序。還可以為EditText控件設(shè)置監(jiān)聽器,用來測(cè)試用戶輸入的內(nèi)容是否合法。Stringstring=editText.getText().toString();<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="請(qǐng)輸入用戶名"
/>簡單控件SimpleViewsButton是按鈕,是用于響應(yīng)用戶的一系列點(diǎn)擊事件,使程序更加流暢和完整。<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="click"/>簡單控件SimpleViews匿名內(nèi)部類方式在Activity中添加匿名內(nèi)部類Button點(diǎn)擊事件實(shí)現(xiàn)方式—匿名內(nèi)部類button.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
Log.i("匿名內(nèi)部類方式","buttonisclicked");
}
});簡單控件SimpleViewsRadioButton為單選按鈕,它需要與RadioGroup配合使用,提供兩個(gè)或多個(gè)互斥的選項(xiàng)集。RadioGroup是單選組合框,可容納多個(gè)RadioButton,并把它們組合在一起,實(shí)現(xiàn)單選狀態(tài)。簡單控件SimpleViews<RadioGroup
android:orientation=“vertical”
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<RadioButton
android:id=“@+id/radioButton3”
android:checked="true"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“男”/>
<RadioButton
android:id=“@+id/radioButton4”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“女"/>
</RadioGroup>簡單控件SimpleViews利用setOnCheckedChangeListener()監(jiān)聽RadioGroup控件狀態(tài),通過if語句判斷被選中RadioButton的id。radioGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){
@Override
publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
if(checkedId==R.id.radioButton3){
textView.setText("您的性別是:男");
}else{
textView.setText("您的性別是:女");
}
}
});簡單控件SimpleViewsCheckBox為多選按鈕,允許用戶同時(shí)選中一個(gè)或多個(gè)選項(xiàng);用法與RadioButton類似,有checked屬性。<CheckBox
android:id="@+id/checkBox2"
android:checked="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox"/>簡單控件SimpleViews
ImageView是視圖控件,它繼承自View,其功能是在屏幕中顯示圖像。ImageView類可以從各種來源加載圖像(如資源庫或網(wǎng)絡(luò)),并提供縮放、裁剪、著色(渲染)等功能。<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:srcCompat="@tools:sample/backgrounds/scenic[0]"/>imageView.setImageResource(R.drawable.ic_launcher_foreground);簡單控件SimpleViews2.列表控件學(xué)習(xí)內(nèi)容Learningcontent01ListViewListView02CommonDataAdapter常用數(shù)據(jù)適配器(Adapter)03RecyclerViewRecyclerViewPART01ListViewListViewListViewListView是Android開發(fā)中比較常用的組件,它以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長度自適應(yīng)顯示。ListViewisacommonlyusedcomponentinAndroiddevelopment.Itdisplaysspecificcontentintheformofalist,andcanbedisplayedadaptivelyaccordingtothelengthofdata.中國大學(xué)MOOC課程列表MOOCCourseListofChineseUniversitiesListViewListViewListView列表的顯示需要三個(gè)元素:(1)ListView控件:用來展示列表的視圖;(2)適配器Adapter:用來把數(shù)據(jù)映射到ListView上的橋梁;(3)數(shù)據(jù)
:包括具體的將被映射的字符串,圖片或其它基本組件。Thedisplayofalistrequiresthreeelements:(1)ListView:theviewusedtodisplaythelist;(2)Adapter:usedtomapdatatoListView;(3)Data:includingspecificstrings,images,orbasiccomponentstobemapped.ListView的樣式是由屬性決定的,它的常用屬性如下表所示。ThestyleofListViewisdeterminedbyitsproperties.Itscommonattributesareshowninthefollowingtable.屬性名稱attribute功能描述Functiondescriptionandroid:listSelector當(dāng)條目被點(diǎn)擊后,改變條目的背景顏色Whentheitemisclicked,changethebackgroundcoloroftheitemandroid:divider設(shè)置分割線的顏色Setthecolorofthesplitlineandroid:dividerHeight設(shè)置分割線的高度Settheheightofthesplitlineandroid:scrollbars是否顯示滾動(dòng)條Setwhetherscrollbarsaredisplayedandroid:fadingEdge去掉上邊和下邊的黑色陰影RemovetheblackshadowsontheupperandloweredgesListViewListView在XML文件的RelativeLayout布局中添加ListView控件的示例代碼如下:T.TheexamplecodeforaddingaListViewtotheRelativeLayoutlayoutinanXMLfileisasfollows:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayout>
<ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"
android:listSelector="#fefefefe"android:scrollbars="none"></ListView></RelativeLayout>ListViewListViewPART02常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter數(shù)據(jù)適配器是數(shù)據(jù)與視圖之間的橋梁,它類似于一個(gè)轉(zhuǎn)換器,將復(fù)雜的數(shù)據(jù)轉(zhuǎn)換成用戶可以接受的方式進(jìn)行呈現(xiàn)。常用的數(shù)據(jù)適配器:BaseAdapterSimpleAdapterArrayAdapterThedataadapteristhebridgebetweendataandview.Itissimilartoaconverterthatconvertscomplexdataintoawaythatuserscanacceptforpresentation.Commondataadapters:(1)BaseAdapter(2)SimpleAdapter(3)ArrayAdapter常用數(shù)據(jù)適配器(Adapter)CommonDataAdapterBaseAdapterBaseAdapter是基本的適配器。它實(shí)際上是一個(gè)抽象類,該類擁有四個(gè)抽象方法,用于對(duì)ListView控件進(jìn)行數(shù)據(jù)適配。BaseAdapteristhebasicadapter.Infact,itisanabstractclassthatusuallyinheritsBaseAdapterwhencustomizingadapters.ThisclasshasfourabstractmethodsfordataadaptationofListView.BaseAdapter抽象方法:Theabstractmethodsareshowninthefollowingtable.常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter方法名稱Method功能描述FunctiondescriptionpublicintgetCount()獲取列表?xiàng)l目(Item)的總數(shù)GetthetotalnumberoflistentriespublicObjectgetItem(intposition)根據(jù)position(位置)獲取某個(gè)條目的對(duì)象GettheobjectofanitemaccordingtopositionpubliclonggetItemId(intposition)根據(jù)position(位置)獲取某個(gè)條目的idGettheIDofanitemaccordingtothepositionpublicViewgetView(intposition,ViewconvertView,ViewGroupparent)獲取相應(yīng)position對(duì)應(yīng)的條目視圖,position是當(dāng)前條目的位置,convertView用于復(fù)用舊視圖,parent用于加載XML布局。Gettheitemviewcorrespondingtothecorrespondingposition.positionisthelocationofthecurrentitem,convertViewisusedtoreusetheoldview,parentisusedtoloadtheXMLlayout.常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter2.SimpleAdapterSimpleAdapter繼承BaseAdapter,實(shí)現(xiàn)了BaseAdapter的四個(gè)抽象方法并進(jìn)行封裝。SimpleAdapter的構(gòu)造方法的具體信息如下:BaseAdapterencapsulatesfourabstractmethodsofBaseAdapter.ThedetailsoftheSimpleAdapterconstructionmethodareasfollows:publicSimpleAdapter(Contextcontext,List<?extendsMap<String,?>>data,intresource,String[]from,int[]to)
常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter在SimpleAdapter()構(gòu)造方法中的5個(gè)參數(shù)的含義如下:ThemeaningsofthefiveparametersintheSimpleAdapter()constructionmethodareasfollows:context:表示上下文對(duì)象。context:indicatesthecontextobject.data:數(shù)據(jù)集合,data中的每一項(xiàng)對(duì)應(yīng)ListView控件中的條目的數(shù)據(jù)。data:datacollection.resource:條目布局的資源id。resource:resourceidoftheitemlayout.from:Map集合中的key值。from:thekeyvalueintheMapset.to:條目布局中對(duì)應(yīng)的控件。to:thecorrespondingcontrolintheitemlayout.publicSimpleAdapter(Contextcontext,List<?extendsMap<String,?>>data,intresource,String[]from,int[]to)
常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter3.ArrayAdapterArrayAdapter也是BaseAdapter的子類,開發(fā)者只需要在構(gòu)造方法里面?zhèn)魅胂鄳?yīng)參數(shù)即可。ArrayAdapter通常用于適配TextView控件,ArrayAdapter有多個(gè)構(gòu)造方法,常用的有:ArrayAdapterisalsoasubclassofBaseAdapter.Developersonlyneedtopassinthecorrespondingparametersintheconstructionmethod.ArrayAdapterisusuallyusedtoadapttoTextView.ArrayAdapterhasseveralconstructionmethods,including:publicArrayAdapter(Contextcontext,intresource,T[]objects);
常用數(shù)據(jù)適配器(Adapter)CommonDataAdapter在ArrayAdapter()構(gòu)造方法中的3個(gè)參數(shù)的含義如下:ThemeaningsofthethreeparametersintheArrayAdapter()constructionmethodareasfollows:context:表示上下文對(duì)象。context:indicatesthecontextobject.resource:條目布局的資源id。resource:resourceidoftheitemlayout.objects:需要適配的List類型的數(shù)據(jù)。objects:Listtypedatatobeadapted.publicArrayAdapter(Contextcontext,intresource,T[]objects);
PART03RecyclerView回收視圖RecyclerViewRecyclerViewApp中列表ListinApp回收視圖RecyclerViewRecyclerView:RecyclerView是一種新的控件,它的目標(biāo)是為任何基于適配器的視圖提供相似的渲染方式。它不僅可以實(shí)現(xiàn)和我們之前學(xué)習(xí)過的ListView同樣的效果,還優(yōu)化了ListView中的各種不足。RecyclerView:RecyclerViewisanewcontrolthataimstoprovideasimilarrenderingmethodforanyadapterbasedview.ItcannotonlyachievethesameeffectastheListViewwehavelearnedbefore,butalsooptimizevariousdeficienciesintheListView.回收視圖vs列表視圖RecyclerViewvsListView
與ListView相比,RecyclerView的優(yōu)勢(shì)為:展示效果:RecyclerView控件可以通過LayoutManager類實(shí)現(xiàn)橫向或豎向的列表效果、瀑布流效果和GridView效果,而ListView控件只能實(shí)現(xiàn)豎直的列表效果。適配器:RecyclerView控件使用的是RecyclerView.Adapter適配器,該適配器強(qiáng)制使用ViewHolder類,使代碼編寫規(guī)范化,避免了初學(xué)者寫的代碼性能不佳。
ComparedwithListView,RecyclerViewhasthefollowingadvantages:Presentationeffect:TheRecyclerViewcontrolcanachievehorizontalorverticallisteffect,waterfalleffectandGridVieweffectthroughtheLayoutManagerclass,whiletheListViewcontrolcanonlyachieveverticallisteffect.Adapter:TheRecyclerViewcontrolusesRecyclerViewAdapteradapter,whichenforcestheuseofViewHolderclasstostandardizecodewritingandavoidpoorperformanceofcodewrittenbybeginners.回收視圖vs列表視圖RecyclerViewvsListView
與ListView相比,RecyclerView的優(yōu)勢(shì)為:展示效果:RecyclerView控件可以通過LayoutManager類實(shí)現(xiàn)橫向或豎向的列表效果、瀑布流效果和GridView效果,而ListView控件只能實(shí)現(xiàn)豎直的列表效果。適配器:RecyclerView控件使用的是RecyclerView.Adapter適配器,該適配器強(qiáng)制使用ViewHolder類,使代碼編寫規(guī)范化,避免了初學(xué)者寫的代碼性能不佳。
ComparedwithListView,RecyclerViewhasthefollowingadvantages:Presentationeffect:TheRecyclerViewcontrolcanachievehorizontalorverticallisteffect,waterfalleffectandGridVieweffectthroughtheLayoutManagerclass,whiletheListViewcontrolcanonlyachieveverticallisteffect.Adapter:TheRecyclerViewcontrolusesRecyclerViewAdapteradapter,whichenforcestheuseofViewHolderclasstostandardizecodewritingandavoidpoorperformanceofcodewrittenbybeginners.回收視圖vs列表視圖RecyclerViewvsListView
與ListView相比,RecyclerView的優(yōu)勢(shì)為:復(fù)用效果:RecyclerView控件復(fù)用Item對(duì)象的工作由該控件自己實(shí)現(xiàn),而ListView控件復(fù)用Item對(duì)象的工作需要開發(fā)者實(shí)現(xiàn)。動(dòng)畫效果:RecyclerView控件可以通過setItemAnimator()方法為Item添加動(dòng)畫效果,而ListView控件不可以通過該方法為Item添加動(dòng)畫效果。
ComparedwithListView,RecyclerViewha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025陜西省建筑安全員知識(shí)題庫及答案
- 2025海南省建筑安全員-A證考試題庫附答案
- 2025河南建筑安全員知識(shí)題庫附答案
- 《A期中沖刺復(fù)習(xí)》課件
- 下肢深靜脈血栓的形成
- 物質(zhì)的量完整課件
- 《醫(yī)院火災(zāi)培訓(xùn)課件》課件
- 房地產(chǎn)行業(yè)定期報(bào)告:鄭州出臺(tái)容積率新規(guī)一線新房成交環(huán)比與9.6
- 《技術(shù)必修》課件
- 單位管理制度展示合集職員管理篇十篇
- 水土保持方案投標(biāo)文件技術(shù)部分
- 專題3-6 雙曲線的離心率與常用二級(jí)結(jié)論【12類題型】(原卷版)-A4
- 2024年人力資源年度工作總結(jié)參考(2篇)
- DB52T 1776.1-2023 耕地質(zhì)量等別評(píng)價(jià) 第1部分:評(píng)價(jià)規(guī)范
- BIM工程師年終總結(jié)
- 2024秋季新教材人教版體育與健康一年級(jí)上冊(cè)課件:1我們愛運(yùn)動(dòng)
- 領(lǐng)導(dǎo)年終總結(jié)匯報(bào)工作
- CQI-23模塑系統(tǒng)評(píng)估審核表-中英文
- 2024年大型游樂設(shè)施操作(Y2)特種作業(yè)取證(廣東)考試復(fù)習(xí)題庫(含答案)
- 【教案】Unit+4+My+Favourite+Subject大單元整體教學(xué)設(shè)計(jì)人教版英語七年級(jí)上冊(cè)
- 2024年省國資委選聘兼職外部董事人選高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論