




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Android移動應用基礎(chǔ)教程(第2版)第1章 Android基礎(chǔ)入門 Android開發(fā)環(huán)境搭建 Android程序結(jié)構(gòu) 程序調(diào)試 Android體系結(jié)構(gòu) 開發(fā)第一個程序 資源的管理與使用重點了解掌握3通信技術(shù)Android體系結(jié)構(gòu)1Android開發(fā)環(huán)境搭建 HelloWorld程序的編寫2Android程序結(jié)構(gòu)Android資源的管理和使用程序調(diào)試學習目標1.4 Android程序結(jié)構(gòu)1.1 Android簡介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試Android本意指“機
2、器人”,Google公司將Android的標識設(shè)計為一個綠色機器人, 表示Android系統(tǒng)符合環(huán)保概念,是一個輕薄短小,功能強大的移動系統(tǒng),是第一個真正為手機打造的開放性系統(tǒng)。什么是Android什么是AndroidAndroid和iOS主要區(qū)別對比項目AndroidiOS開發(fā)語言JavaObjective-c,Swift系統(tǒng)開放性Android源代碼開放,開放性更好封閉操作系統(tǒng),開放性較差系統(tǒng)安全性源代碼開放,安全性較差封閉操作系統(tǒng),安全性更高2015年9月2018年11月移動平臺市場占有率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ù)來源:職友集北京Android工程師平均薪資 第一代通信技術(shù)(1G):是指最初的模擬、僅限語音的蜂窩電話標準。第二代通信技術(shù)(2G):是指第2代移動通信技術(shù),代表為GSM,以數(shù)字語音傳輸技術(shù)為核心。傳輸速度9.6k/s。第三代通信技術(shù)(3G):是指將無線通信與國際互聯(lián)網(wǎng)等多媒體通信結(jié)合的新一代移動通信系統(tǒng)。3G通信網(wǎng)在室內(nèi)、室外和行車的環(huán)境中能夠分別支持至少2M/s、384K/s以及144K/s的傳輸速度第四代通信技術(shù)(4G):又稱IMT-Advanced技術(shù),它包括了TD
4、-LTE 和 FDD-LTE。4G通信網(wǎng)最高甚至可以達到100M/s的傳輸速度。第五代通信技術(shù)(4G):目前尚未正式商用。傳輸速度據(jù)說可達10Gbps。1.1.1 通信技術(shù)通信技術(shù)Android操作系統(tǒng)最初是由安迪魯賓(Andy Rubin)開發(fā)出的,后來被Google收購,并于2007年11月5日正式向外界展示了這款系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android操作系統(tǒng)的源代碼。1.1.2 Android起源Android起源2008年9月發(fā)布Android第1個版本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ū)動1.1.3 Android體系結(jié)構(gòu)Dalvik是Google公司自己設(shè)計用于Android平臺的虛擬機,它主要是完成對象生命周期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。1.1.4 Dalvik虛擬機Dalvik虛擬機Dalvik虛擬機編譯文件過程1.4 Android程序結(jié)構(gòu)1.1 Android簡
6、介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個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è)備類型及尺寸11.2.2 模擬器創(chuàng)建單擊ADV Manager標簽5SDK:(software development kit)軟件開發(fā)工具包。SDK用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)
7、工具的集合。1.2.3 下載SDKSDK下載1.2.3下載SDK下載Tools工具23下載SDK版本1單擊 圖標1.4 Android程序結(jié)構(gòu)1.1 Android簡介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試學習Android可以開發(fā)出精美的APP。開發(fā)第一個Android程序本小節(jié)就教大家如何編寫一個HelloWorld程序。1.3開發(fā)第一個Android程序功能描述:技術(shù)要點:在Android Studio的Welcome to Android Studio窗口中選擇【Sta
8、rt a new Android Studio project】選項創(chuàng)建項目點擊工具欄中【AVD Manager】標簽啟動模擬器點擊工具欄中的運行按鈕運行程序?qū)崿F(xiàn)步驟: 展示HelloWorld界面。使用AndroidStudio創(chuàng)建程序,使用模擬器運行程序。2311.3開發(fā)第一個Android程序1.4 Android程序結(jié)構(gòu)1.1 Android簡介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試存放程序的代碼和資源等文件程序的gradle構(gòu)建腳本指定項目中所使用的SDK路徑1.4
9、Android程序結(jié)構(gòu)配置在Android中使用的子項目(Moudle)1.4 Android程序結(jié)構(gòu)1.1 Android簡介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試圖片資源:擴展名為.png、.jpg、.gif、.9.png等的文件。圖片資源分類應用圖標資源:存放在mipmap文件夾中界面中使用的圖片資源:存放在drawable文件夾中屏幕密度匹配規(guī)則圖片資源1.5.1 圖片資源密度范圍值mipmap文件夾drawable文件夾120160dpimipmap_mdpimipm
10、ap_mdpi160240dpimipmap_hdpidrawable_hdpi240320dpimipmap_xdpidrawable_xdpi320480dpimipmap_xxdpidrawable_xxdpi480640dpimipmap_xxxdpidrawable_xxxdpi調(diào)用圖片資源的方法通過Java代碼調(diào)用圖片資源 /調(diào)用mipmap文件夾中資源文件 getResources().getDrawable(R.mipmap.ic_launcher); /調(diào)用以drawable開頭的文件夾中的資源文件 getResources().getDrawable(R.drawable.
11、icon); 在XML布局文件中調(diào)用圖片資源 mipmap/ic_launcher /調(diào)用mipmap文件夾中的資源文件 drawable/icon /調(diào)用以drawable開頭的文件夾中的資源文件圖片資源1.5.1 圖片資源主題是包含一種或多種的格式化屬性集合,在程序中調(diào)用主題資源可改變窗體的樣式,對整個應用或某個Activity存在全局性影響。定義位置:res/values目錄下的styles.xml文件中標簽:定義主題:設(shè)置主題的樣式主題資源1.5.2 主題和樣式資源1.5.2 主題和樣式資源主題資源主題資源 color/colorPrimary color/colorPrimaryDa
12、rk color/colorAccent 用于定義主題用于指定主題名稱用于指定繼承的父主題用于設(shè)置主題的樣式 調(diào)用方式XML文件中:android:theme =style/AppThemeJava代碼中:setTheme(R.style.AppTheme);樣式:設(shè)置View的具體樣式。定義位置:res/values目錄下的styles.xml文件中標簽在XML文件中調(diào)用方法樣式資源1.5.2 主題和樣式資源:定義樣式:設(shè)置控件的樣式style=style/textViewSytle布局資源通常用于搭建程序中的各個界面。定義位置:res/layout文件夾中調(diào)用方式通過Java代碼調(diào)用布局資
13、源文件在XML布局文件中調(diào)用布局資源文件布局資源1.5.3 布局資源/在Activity的onCreate()方法中調(diào)用activity_main.xml布局資源setContentView(R.layout.activity_main);/在XML布局文件中調(diào)用activity_main.xml布局資源定義位置:res/values/文件夾的strings.xml文件中編寫字符串資源內(nèi)容字符串資源1.5.4 字符串資源 字符串應用名稱調(diào)用方式通過Java代碼調(diào)用字符串資源在XML布局文件中調(diào)用字符串資源字符串資源1.5.4 字符串資源在Activity的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用于定義顏色資源的標簽用于指定顏色資源的名稱顏色值調(diào)用方式通過Java代碼調(diào)用顏色資源在XML布局文件中調(diào)用顏色資源顏色資源1.5.5 顏色資源在Activity的onCreate()方法中調(diào)用名為colorPrimary的顏
15、色資源getResources().getColor(R.color.colorPrimary);在XML布局文件中調(diào)用名為colorPrimary的顏色資源color/colorPrimary調(diào)用顏色資源的方法調(diào)用顏色資源的屬性多學一招:定義顏色值1.5.5 顏色資源在Android中,顏色值是由RGB(紅、綠、藍)三原色和一個透明度(Alpha)表示,顏色值必須以“#”開頭,“#”后面顯示Alpha-Red-Green-Blue形式的內(nèi)容。其中,Alpha值可以省略,如果省略,表示顏色默認是完全不透明的。定義顏色的形式#RGB#ARGB#RRGGBB#AARRGGBB尺寸資源:例如:Vie
16、w的寬高值定義位置:res/values/文件夾的dimens.xml文件中創(chuàng)建dimens.xml文件:右鍵單擊values文件夾,選中【New】 【XML】 【Values XML File】,在彈出框中輸入dimens。編寫尺寸資源尺寸資源1.5.6 尺寸資源 16dp 16dp用于定義尺寸資源的標簽調(diào)用方式通過Java代碼調(diào)用尺寸資源在XML布局文件中調(diào)用尺寸資源尺寸資源1.5.6 尺寸資源在Activity的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多學一招:Android支持的尺寸單位1.5.6 尺寸資源尺寸單位px(pixels,像素):每個px對應屏幕上的一個點。dp(Density-independent Pixels,設(shè)備獨立像素):是一種與屏幕密度無關(guān)的尺寸單位。sp(scaled pixels,比例像素):主要處理字體的大小,可以根據(jù)用戶字體大小首選項進行縮放。in(inches,英寸):標準長度單位。pt(points,磅):屏
18、幕物理長度單位,1磅為1/72英寸。mm(Millimeters,毫米):屏幕物理長度單位。1.4 Android程序結(jié)構(gòu)1.1 Android簡介 1.2 Android開發(fā)環(huán)境搭建1.3 開發(fā)第一個Android程序主講內(nèi)容Speech content主講內(nèi)容1.5 資源的管理與使用1.6 程序調(diào)試單元測試單元測試是指在應用程序開發(fā)過程中對最小的功能模塊進行測試,可以在完成某個功能之后對該功能進行單獨測試。單元測試分類:Android單元測試:連接Android設(shè)備、速度比較慢、適合需要調(diào)用Android API的單元測試。Junit單元測試:不依賴Android設(shè)備(在本地即可運行)、速
19、度快、適合只對java代碼功能進行的單元測試。1.6.1 單元測試單元測試Android Studio 3.2版本在創(chuàng)建項目時,會默認在app/src/androidTest和app/src/test文件夾中創(chuàng)建Android單元測試類ExampleInstrumentedTest和Junit單元測試類ExampleUnitTest。Android單元測試類ExampleInstrumentedTest使用RunWith(AndroidJUnit4.class)注解ExampleInstrumentedTest類Test注解類中的方法Junit單元測試類ExampleUnitTestTest注
20、解類中的方法1.6.1 單元測試Android單元測試ExampleInstrumentedTest.java類中的代碼 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(); 斷言,期望兩個參數(shù)值相等注解類1.6.1 單元測試注解方法測試結(jié)果正常測試結(jié)果錯誤1.6.1 單元測試Junit單元測試ExampleInstrumentedTest.java類中的代碼package cn.itcast.helloworld;public class ExampleUnitTest Test public void addition_isCorrect() assertEquals(4, 2 + 2); 斷言,期望兩個參數(shù)值相等1.6.1 單元測試注解方法測試結(jié)果正常測試結(jié)果錯
22、誤1.6.1 單元測試注意Android Studio 3.2版本在創(chuàng)建項目時,會自動在build.gradle文件中添加單元測試的支持庫,如果在進行單元測試時,程序中的build.gradle文件中沒有添加單元測試的支持庫,則需要手動進行添加。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 單元測試LogCat的使用LogCat是Android中的命令行工具,用于獲取程序從啟動到關(guān)閉的日志信息。Log類所輸出的日志內(nèi)容分為六個級別。1.6.2 LogCat的使用級別Log類中的靜態(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);打印信息的標簽需要打印的信息1.6.2 LogCat的使用測試結(jié)果1.6.2 LogCat的使用1.6.2 LogCat的使用過濾顯示過濾器名稱根據(jù)定義的TAG過濾信息點擊創(chuàng)建完成過濾顯示除了設(shè)置過濾器過濾所需的信息外,還可以輸入TAG信息、根據(jù)Log級別等方式過濾信息。LogCat區(qū)域中日志信息根據(jù)級別不同顯示不同的顏色1.6.2 LogCat的使用級別顯示信息日志信息顏色verbose(V)全部信息黑色debug(D)調(diào)試信息藍色i
25、nfo(I)一般信息綠色warning(W)警告信息橙色error(E)錯誤信息紅色assert斷言失敗后的錯誤消息紅色本章主要講解了Android的基礎(chǔ)知識,首先介紹了Android的發(fā)展歷史以及體系結(jié)構(gòu),然后講解Android開發(fā)環(huán)境的搭建,接著開發(fā)了一個HelloWorld程序,幫助大家了解Android項目的創(chuàng)建、程序的結(jié)構(gòu),以及資源文件的使用。最后介紹了程序調(diào)試,包括單元測試和LogCat的使用。通過本章的學習,希望讀者能對Android有一個大致的了解,并會獨立搭建Android開發(fā)環(huán)境,為后續(xù)學習Android知識做好鋪墊。1.7 本章小結(jié) 本章作業(yè) 簡述Android系統(tǒng)架構(gòu)包
26、含的層次以及各層的特點。簡述 Log類輸出日志內(nèi)容的級別和對應Log類中的方法。 預習作業(yè)簡述Android線性布局的特點。簡述Android相對布局的特點。Android移動應用基礎(chǔ)教程(第2版)第2章 Android常見界面布局 界面布局編寫方式 View視圖 常見界面布局簡述Android系統(tǒng)架構(gòu)包含的層次以及各層的特點。簡述 Log類輸出日志內(nèi)容的級別和對應Log類中的方法。作業(yè)點評簡述Android相對布局的特點。簡述Android線性布局的特點。預習檢查3約束布局重點了解掌握2View視圖界面布局的編寫方式布局的使用學會搭建常用布局1學習目標2.1 View視圖 2.2 界面布局編
27、寫方式2.3 常見界面布局 主講內(nèi)容Speech content主講內(nèi)容View視圖所有的UI元素都是通過View與ViewGroup構(gòu)建的,對于一個Android應用的用戶界面來說,ViewGroup作為容器盛裝界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。2.1 View視圖2.1 View視圖 2.2 界面布局編寫方式2.3 常見界面布局 主講內(nèi)容Speech content主講內(nèi)容界面布局編寫方式界面布局編寫方式在XML文件中編寫布局:推薦此種方式布局有效的將界面中布局的代碼和Java代碼隔離,使程序的結(jié)構(gòu)更加清晰。在Java代碼中編寫布局在Android中
28、所有布局和控件的對象都可以通過new關(guān)鍵字創(chuàng)建出來,將創(chuàng)建的View控件添加到ViewGroup布局中,從而實現(xiàn)View控件在布局界面中顯示。2.2 界面布局編寫方式在XML文件中編寫布局 相對布局繼承自ViewGroupTextView控件繼承自View2.2 界面布局編寫方式設(shè)置文字的樣式在Java代碼中編寫布局RelativeLayout relativeLayout = new RelativeLayout(this);RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( RelativeLayout
29、.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);/addRule參數(shù)對應RelativeLayout XML布局的屬性params.addRule(RelativeLayout.CENTER_IN_PARENT); /設(shè)置居中顯示TextView textView = new TextView(this); /創(chuàng)建TextView控件textView.setText(Java 代碼實現(xiàn)界面布局); /設(shè)置TextView的文字內(nèi)容textView.setTextColor(Color.RED); /設(shè)置
30、TextView的文字顏色textView.setTextSize(18); /設(shè)置TextView的文字大小/添加TextView對象和TextView的布局屬性relativeLayout.addView(textView, params);setContentView(relativeLayout); /設(shè)置在Activity中顯示RelativeLayout2.2 界面布局編寫方式2.1 View視圖 2.2 界面布局編寫方式2.3 常見界面布局 主講內(nèi)容Speech content主講內(nèi)容五種常用布局線性布局相對布局幀布局表格布局約束布局特點:以水平或垂直方向排列特點:通過相對定位排
31、列特點:開辟空白區(qū)域,幀里的 控件(層)疊加特點:表格形式排列特點:可視化的方式編寫布局2.3 常見界面布局布局的通用屬性Android系統(tǒng)提供的五種常用布局直接或者間接繼承自ViewGroup,因此它們也支持在ViewGroup中定義的屬性,這些屬性可以看作是布局的通用屬性。2.3.1 布局的通用屬性屬性名稱功能描述android:id設(shè)置布局的標識android:layout_width設(shè)置布局的寬度android: layout_height設(shè)置布局的寬度android:background設(shè)置布局的背景android:layout_margin設(shè)置當前布局與屏幕邊界或與周圍控件的距離a
32、ndroid:padding設(shè)置當前布局與該布局中控件的距離相對布局相對布局(RelativeLayout)是通過相對定位的方式指定子控件位置,即以其它控件或父容器為參照物,擺放控件位置。定義格式2.3.2 RelativeLayout相對布局 控件屬性功能描述android:layout_centerInParent設(shè)置當前控件位于父布局的中央位置android:layout_centerVertical設(shè)置當前控件位于父布局的垂直居中位置android:layout_centerHorizontal設(shè)置當前控件位于父控件的水平居中位置android:layout_above設(shè)置當前控件位于
33、某控件上方android:layout_below設(shè)置當前控件位于某控件下方android:layout_toLeftOf設(shè)置當前控件位于某控件左側(cè)android:layout_toRightOf設(shè)置當前控件位于某控件右側(cè)android:layout_alignParentTop設(shè)置當前控件是否與父控件頂端對齊android:layout_alignParentLeft設(shè)置當前控件是否與父控件左對齊android:layout_alignParentRight設(shè)置當前控件是否與父控件右對齊android:layout_alignParentBottom設(shè)置當前控件是否與父控件底端對齊andro
34、id:layout_alignTop設(shè)置當前控件的上邊界與某控件的上邊界對齊android:layout_alignBottom設(shè)置當前控件的下邊界與某控件的下邊界對齊android:layout_alignLeft設(shè)置當前控件的左邊界與某控件的左邊界對齊android:layout_alignRight設(shè)置當前控件的右邊界與某控件的右邊界對齊2.3.2 相對布局控件位置屬性相對布局 . 2.3.2 RelativeLayout相對布局線性布局線性布局(LinearLayout)主要以水平或垂直方式來顯示界面中的控件。當控件水平排列時,顯示順序依次為從左到右,當控件垂直排列時,顯示順序依次為從
35、上到下。按鈕1按鈕2按鈕3按鈕3按鈕2按鈕12.3.3 LinearLayout線性布局orientation屬性 . 此屬性控制控件排列方向,包含兩個屬性值:vertical(垂直)、horizontal(水平)2.3.3 LinearLayout線性布局 權(quán)重LinearLayout布局中的android:layout_width屬性值不可設(shè)為wrap_content。這是因為LinearLayout的優(yōu)先級比Button高,如果設(shè)置為wrap_content,則Button控件的android:layout_weight屬性會失去作用。 注意:當控件使用權(quán)重屬性時,布局寬度屬性值通常設(shè)置
36、為0dp。2.3.3 線性布局注意事項注意事項表格布局采用行、列的形式來管理控件,它不需要明確聲明包含多少行、多少列,而是通過在TableLayout布局中添加TableRow布局來控制表格的行數(shù),通過在TableRow布局中添加控件來控制表格的列數(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ù)幾行,默認為1行2.3.4 TableLayout表格布局 . 第3列可被拉伸設(shè)置控件所在列2.3.4 TableLayout表格布局幀布局幀布局(FrameLayout)用于在屏幕上創(chuàng)建一塊空白區(qū)域,添加到該區(qū)域中的每個子控件占一幀,這些幀會一個一個疊加在一起,后加入的控件會疊加在上一個控件上層所有控件都默認顯示在屏幕左上角。定義格式2.3.5 FrameLayout幀布局 設(shè)置幀布局容器的前景圖像(始終在所有子控件之上)設(shè)置前景圖像顯示位置2.3.5 FrameLayout幀布局約束布局ConstraintLayout是Androi
38、d Studio2.2新添加的布局。它適合使用可視化的方式編寫界面布局當然,可視化操作的背后仍然是使用XML代碼實現(xiàn)的,只不過這些代碼是Android Studio根據(jù)我們的操作自動生成的。相對定位居中定位和傾向Chain2.3.6 ConstraintLayout約束布局相對定位相對定位是在ConstraintLayout中創(chuàng)建布局的基本構(gòu)建方法之一。相對定位即一個控件相對于另一個控件進行定位。ConstraintLayout布局中的控件可以在橫向和縱向上以添加約束關(guān)系的方式進行相對定位,其中,橫向邊包括Left、Start、Right、End,縱向邊包括Top、Bottom、Baselin
39、e(文本底部的基準線)。2.3.6 ConstraintLayout約束布局屬性名稱功能描述layout_constraintLeft_toLeftOf控件的左邊與另外一個控件的左邊對齊layout_constraintLeft_toRightOf控件的左邊與另外一個控件的右邊對齊layout_constraintRight_toLeftOf控件的右邊與另外一個控件的左邊對齊layout_constraintRight_toRightOf控件的右邊與另外一個控件的右邊對齊layout_constraintTop_toTopOf控件的上邊與另外一個控件的上邊對齊layout_constraint
40、Top_toBottomOf控件的上邊與另外一個控件的底部對齊layout_constraintBaseline_toBaselineOf控件間的文本內(nèi)容基準線對齊layout_constraintStart_toEndOf控件的起始邊與另外一個控件的尾部對齊layout_constraintStart_toStartOf控件的起始邊與另外一個控件的起始邊對齊layout_constraintEnd_toStartOf控件的尾部與另外一個控件的起始邊對齊layout_constraintEnd_toEndOf控件的尾部與另外一個控件的尾部對齊2.3.6 約束布局相對定位關(guān)系的屬性居中定位和傾向
41、在ConstraintLayout布局中,控件可以通過添加約束的方式確定該控件在父布局(ConstraintLayout)中的相對位置。當相同方向上(橫向或縱向),控件兩邊同時向ConstraintLayout添加約束,則控件在添加約束的方向上居中顯示。父布局中橫向居中2.3.6 ConstraintLayout約束布局居中定位和傾向在約束是同向相反的情況下,默認控件是居中的,但是也像拔河一樣,兩個約束的力大小不等時,就會產(chǎn)生傾向。2.3.6 ConstraintLayout約束布局屬性名稱功能描述layout_constraintHorizontal_bias橫向的傾向layout_cons
42、traintVertical_bias縱向的傾向注意:如果ConstraintLayout布局中的控件在居中方向(橫向或者縱向)上和父布局(ConstraintLayout)的尺寸一致,此時該方向的居中約束和傾向沒有意義。chainChain(鏈)是一種特殊的約束,他使我們能夠?qū)σ唤M水平或豎直方向互相關(guān)聯(lián)的控件進行統(tǒng)一管理。一組控件通過一個雙向的約束關(guān)系鏈接起來,就能形成一個Chain。2.3.6 ConstraintLayout約束布局Chain的樣式2.3.6 ConstraintLayout約束布局本章主要針對Android界面布局的相關(guān)知識進行講解。通過本章的學習,我們希望讀者能夠掌握
43、View和ViewGroup的功能、掌握不同界面布局以及布局中控件屬性的使用,因為在Android應用中,所有功能大部分都體現(xiàn)在界面上,界面的美觀會給用戶一個友好的體驗。2.4 本章小結(jié) 本章作業(yè) 簡述Android中有幾種布局,以及每種布局的特點。 預習作業(yè)簡述EditText的作用。簡述ListView控件的作用。Android移動應用基礎(chǔ)教程(第2版)第3章 Android常見界面控件 AlertDialog對話框的使用 自定義View 簡單控件的使用ListView和RecyclerView的使用作業(yè)點評簡述Android中有幾種布局,以及每種布局的特點。簡述EditText的作用。簡
44、述ListView控件的作用。預習檢查3AlertDialog對話框的使用重點了解掌握2簡單控件的使用ListView的使用RecyclerView的使用1學習目標3.4 RecyclerView的使用3.1 簡單控件的使用 3.2 AlertDialog對話框的使用3.3 ListView的使用主講內(nèi)容Speech content主講內(nèi)容3.5 自定義View控件是界面組成的主要元素,用戶直接與控件進行交互。3.1 簡單控件的使用簡單控件TextView ButtonEditTextImageViewRadioButtonCheckBoxToast控件的分類TextViewTextView控
45、件用于顯示文本信息。3.1.1 TextView布局屬性功能描述android:layout_width設(shè)置TextView控件的寬度android:layout_height設(shè)置TextView控件的高度android:id設(shè)置TextView控件的唯一標識android:background設(shè)置TextView控件的背景android:layout_margin設(shè)置當前控件與屏幕邊界或周圍控件、布局的距離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è)置文本最大長度,超出此長度的文本不顯示android:lines設(shè)置文本的行數(shù),超出此行數(shù)的文本不顯示android:maxLines設(shè)置文本的最大行數(shù),超出此行數(shù)的文本不顯示。android:ellipsize設(shè)置當文本超出TextView規(guī)定的范圍的顯示方式。android:drawableTop在文本的頂部顯示圖像android:lineSpacingExtra設(shè)置文本的行間距android:textStyle設(shè)置文本樣式,如b
47、old(粗體),italic(斜體),normal(正常)TextView 設(shè)置提示信息設(shè)置文本的顏色、大小、居中、樣式3.1.1 TextViewButtonButton控件表示按鈕,它繼承自TextView控件,既可以顯示文本,又可以顯示圖片,同時也允許用戶通過點擊來執(zhí)行操作,當Button控件被點擊時,被按下與彈起的背景會有一個動態(tài)的切換效果,這個效果就是點擊效果 。3.1.2 Button點擊事件實現(xiàn)方式在布局文件中指定Button控件的onClick屬性方式在layout文件中指定onClick屬性在Activity中實現(xiàn)這個click方法 android:onClick=click
48、 public void click(View v) Log.i(指定onClick屬性方式, button is clicked); 注意:Activity中實現(xiàn)的方法名稱要與onClick屬性設(shè)置的名稱一致。3.1.2 Button點擊事件實現(xiàn)方式匿名內(nèi)部類方式在Activity中添加匿名內(nèi)部類 btn.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) Log.i(匿名內(nèi)部類方式, button is clicked); );3.1.2 Button點擊事件實現(xiàn)方式接口方式設(shè)
49、置Button控件的點擊監(jiān)聽事件接著當前Activity實現(xiàn)OnClickListener接口然后實現(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的子類,用戶可在此控件中輸入信息。3.1.3 EditView屬性名稱功能描述android:hint控件中內(nèi)容為空時顯示的提示文本信息android:textColorHint控件中內(nèi)容為空時顯示的提示文本信息的顏色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屬性名稱功能描述android:layout_width設(shè)置ImageView控件的寬度android:layout_height設(shè)置ImageView控件的高度android:id設(shè)置ImageView控件的唯一標識android:background設(shè)置ImageView控件的背景android:layout_margin設(shè)置當前控件與屏幕邊界或周圍
52、控件的距離android:src設(shè)置ImageView控件需要顯示的圖片資源android:scaleType將圖片資源縮放或移動,以適應ImageView控件的寬高android:tint將圖片渲染成指定的顏色ImageView 設(shè)置背景圖片設(shè)置前景圖片3.1.4 ImageViewRadioButtonRadioButton為單選按鈕,android:checked屬性指定是否選中的狀態(tài)。RadioGroup是單選組合框,可容納多個RadioButton,并把它們組合在一起,實現(xiàn)單選狀態(tài)。語法格式3.1.5 RadioButton . 控制RadioButton按鈕的排列方向3.1.5 R
53、adioButtonCheckBoxCheckBox表示復選框,它是Button的子類,用于實現(xiàn)多選功能,通過android:checked屬性指定CheckBox控件是否選中的狀態(tài)。3.1.6 CheckBox 3.1.6 CheckBoxCheckBoxToast是Android系統(tǒng)提供的輕量級信息提醒機制,用于向用戶提示即時消息,它顯示在應用程序界面的最上層,顯示一段時間后自動消失不會打斷當前操作,也不獲得焦點。3.1.7 ToastToast.makeText(MainActivity.this,WIFI已斷開,Toast.LENGTH_SHORT).show();3.1.7 Toas
54、t當前組件的上下文環(huán)境提示的字符串信息顯示信息的時長顯示信息3.4 RecyclerView的使用3.1 簡單控件的使用 3.2 AlertDialog對話框的使用3.3 ListView的使用主講內(nèi)容Speech content主講內(nèi)容3.5 自定義ViewAlertDialog對話框概述AlertDialog對話框用于提示一些重要信息或者顯示一些需要用戶額外交互的內(nèi)容。它一般以小窗口的形式展示在界面上。使用AlertDialog創(chuàng)建的對話框一般包含標題、內(nèi)容和按鈕三個區(qū)域。結(jié)構(gòu)圖3.2.1AlertDialog對話框概述創(chuàng)建AlertDialog對話框步驟1、調(diào)用AlertDialog的靜
55、態(tài)內(nèi)部類Builder創(chuàng)建AlertDialog.Builder的對象。2、調(diào)用AlertDialog.Builder的setTitle()和setIcon()方法分別設(shè)置AlertDialog對話框的標題名稱和圖標。3、調(diào)用AlertDialog.Builder的setMessage()、setSingleChoiceItems()或者setMultiChoiceItems()方法設(shè)置AlertDialog對話框的內(nèi)容為簡單文本、單選列表或者為多選列表。4、調(diào)用AlertDialog.Builder的setPositiveButton()和setNegativeButton()方法設(shè)置Ale
56、rtDialog對話框的確定和取消按鈕。5、調(diào)用AlertDialog.Builder的create()方法創(chuàng)建AlertDialog對象。6、調(diào)用AlertDialog對象的show()方法顯示該對話框。7、調(diào)用AlertDialog對象的dismiss()方法取消該對話框。3.2.1AlertDialog對話框概述普通對話框普通對話框的內(nèi)容區(qū)域一般顯示簡單的文本信息。通過setMessage()方法設(shè)置的。 AlertDialog dialog; dialog = new AlertDialog.Builder(this) .setTitle(普通對話框) .setIcon(R.mipma
57、p.ic_launcher) .setMessage(是否退出應用?) .setPositiveButton(確定,.) .setNegativeButton(取消,.) .create(); dialog.show();聲明對象綁定當前窗口設(shè)置標題設(shè)置圖標設(shè)置提示信息添加確定按鈕添加取消按鈕創(chuàng)建對話框顯示對話框3.2.2 普通對話框單選對話框單選對話框的內(nèi)容區(qū)域顯示為單選列表。單選列表通過AlertDialog.Builder對象調(diào)用setSingleChoiceItem()方法設(shè)置的。 AlertDialog dialog; AlertDialog.Builder builder = ne
58、w AlertDialog.Builder(this) .setTitle(設(shè)置字體大小) /設(shè)置標題 . .setSingleChoiceItems(new String小號, 默認, 中號, 大號, 超大, textSize, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ) .setPositiveButton(“確定”,.)/添加“確定”按鈕 .setNegativeButton(“取消”,.); dialog = builder.create()
59、; dialog.show();設(shè)置選項內(nèi)容建立監(jiān)聽,允許被點擊3.2.3 單選對話框默認選項多選對話框多選對話框的內(nèi)容區(qū)域顯示為多選列表。多選列表通過AlertDialog.Builder對象調(diào)用setMultiChoiceItems()方法設(shè)置的。 AlertDialog dialog; AlertDialog.Builder builder = new AlertDialog.Builder(this) . .setTitle(請?zhí)砑优d趣愛好!) .setIcon(R.mipmap.ic_launcher) .setMultiChoiceItems(items, checkedItems
60、, new DialogInterface.OnMultiChoiceClickListener() .) dialog = builder.create(); dialog.show();創(chuàng)建數(shù)組,設(shè)置選項內(nèi)容多選列表中默認勾選的選項角標多選列表的監(jiān)聽接口3.2.4 多選對話框自定義對話框在Android程序中由于界面風格的不同,一般不直接使用系統(tǒng)提供的對話框,而是根據(jù)項目需求定義相應的對話框樣式。具體步驟如下:創(chuàng)建布局創(chuàng)建一個自定義對話框的布局文件(custom_dialog.xml),布局中需要設(shè)定對話框的標題、對話框內(nèi)容以及確定和取消按鈕。創(chuàng)建自定義對話框創(chuàng)建CommonDialog類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學生在線學習平臺
- 江蘇省安全文明施工措施費
- 項目進度匯報及協(xié)調(diào)通知
- 跨部門協(xié)作會議紀要與行動計劃
- 高效會議管理技巧與實踐指南
- 臺風應急預案演練方案
- 項目預算控制表模板(財務部門)
- 可持續(xù)發(fā)展戰(zhàn)略實踐分享
- 電子交易系統(tǒng)操作指南
- 辦公室職員健康促進措施
- 質(zhì)量管理體系的文件與記錄控制
- 目視檢測VT報告
- 四川省中小流域暴雨洪水計算
- 水泥熟料巖相分析
- 雜詩十二首其二陶淵明
- 第五屆大廣賽獲獎作品
- 《廣告攝影》課件第五講 食品廣告拍攝與后期制作
- (三起點)pep人教版五年級英語下學期Unit2單元課件全套
- Brother-TC-S2A機器操作資料課件
- 肖申克的救贖的英語ppt
- X62W銑床主軸機械加工工藝規(guī)程及鉆床夾具設(shè)計
評論
0/150
提交評論