瘋狂 Android 講義 (Kotlin版)
內容描述
本書是《瘋狂Android講義》的Koltin版,基於《瘋狂Android講義(第3版)》升級而來。本書基於最新的Android 8.0,並採用了Google推薦的IDE:Android Studio作為開發工具,書中每個案例、每個截圖都全面升級到Android 8.0。本書全面地介紹了Android應用開發的相關知識,全書內容覆蓋了Android用戶界面編程、Android四大組件、Android資源訪問、圖形/圖像處理、事件處理機制、Android輸入/輸出處理、音頻/視頻多媒體應用開發、OpenGL與3D應用開發、網絡通信編程、Android整合RESTful服務端、傳感器應用開發、GPS應用開發、整合第三方Map服務等。本書並不局限於介紹Android編程的各種理論知識,而是從“項目驅動”的角度來講授理論。全書一共包括近百個實例,這些示範性的實例既可幫讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考、拿來就用。本書最後還提供了兩個實用的案例:合金彈頭和電子拍賣系統Android客戶端(基於主流的RESTful服務端),具有極高的參考價值。本書提供了配套的答疑網站,如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。
目錄大綱
第1章Android應用和開發環境1
1.1 Android的發展和歷史2
1.1.1 Android的發展和簡介2
1.1.2 Android 8.x平台架構及特性3
1.2使用Gradle自動化構建項目5
1.2.1下載和安裝Gradle 5
1.2.2 Gradle構建文件和創建任務6
1.2.3 Gradle的屬性定義11
1.2.4增量式構建14
1.2.5 Gradle插件和java、application等插件15
1.2.6依賴管理17
1.2.7自定義任務20
1.2.8自定義插件22
1.3搭建Android開發環境24
1.3.1安裝Android Studio 24
1.3.2下載和安裝Android SDK 29
1.3.3安裝過程中常見的錯誤31
1.3.4安裝運行、調試環境32
1.4 Android常用開發工具的用法39
1.4.1使用Monitor進行調試39
1.4.2 Android Debug Bridge的用法41
1.4.3使用mksdcard管理虛擬SD卡42
1.5開始第一個Android應用42
1.5.1使用Android Studio開發第一個Android應用42
1.5.2通過Android Studio運行Android應用45
1.6 Android應用結構分析46
1.6.1 Android項目結構分析47
1.6.2自動生成的R.java 49
1.6.3 res目錄說明50
1.6.4 Android應用的清單文件:AndroidManifest.xml 51
1.6.5應用程序權限說明52
1.7 Android應用的基本組件介紹53
1.7.1 Activity和View 53
1.7.2 Service 53
1.7.3 BroadcastReceiver 54
1.7.4 ContentProvider 54
1.7.5 Intent和IntentFilter 54
1.8使用Android 8的簽名APK 55
1.8.1使用Android Studio對Android應用簽名56
1.8.2使用Android 8的命令對APK簽名57
1.9本章小結58
第2章Android應用的界面編程59
2.1界面編程與視圖(View)組件60
2.1.1視圖組件與容器組件60
2.1.2使用XML佈局文件控制UI界面66
2.1.3在代碼中控制UI界面66
實例:用編程的方式開發UI界面66
2.1.4使用XML佈局文件和代碼混合控制UI界面67
實例:簡單圖片瀏覽器68
2.1.5開發自定義View 69
實例:跟隨手指的小球70
2.2第1組UI組件:佈局管理器72
2.2.1線性佈局73
2.2.2表格佈局74
實例:豐富的表格佈局75
2.2.3幀佈局77
實例:霓虹燈效果79
2.2.4相對佈局80
實例:梅花佈局效果81
2.2.5網格佈局82
實例:計算器界面83
2.2.6絕對佈局84
2.2.7 Android 8的約束佈局85
2.3第2組UI組件:TextView及其子類89
2.3.1文本框(TextView)和編輯框(EditText)的功能與用法89
實例:功能豐富的文本框93
2.3.2 EditText的功能與用法95
2.3.3按鈕(Button)組件的功能與用法95
實例:按鈕、圓形按鈕、帶文字的圖片按鈕96
2.3.4使用9Patch圖片作為背景97
2.3.5單選鈕(RadioButton)和復選框(CheckBox)的功能與用法98
實例:利用單選鈕、複選框獲取用戶信息98
2.3.6狀態開關按鈕(ToggleButton)和開關(Switch)的功能與用法100
實例:動態控制佈局101
2.3.7時鐘(AnalogClock和TextClock)的功能與用法102
實例:手機裡的“勞力士” 103
2.3. 8計時器(Chronometer) 104
2.4第3組UI組件:ImageView及其子類104
實例:圖片瀏覽器106
實例:強大的圖片按鈕108
實例:使用QuickContactBadge關聯聯繫人109
2.5第4組UI組件:AdapterView及子類111
2.5.1列表視圖(ListView)和ListActivity 111
實例:改變分隔條、基於數組的ListView 112
2.5.2 Adapter接口及實現類113
實例:使用ArrayAdapter創建ListView 114
實例:使用SimpleAdapter創建ListView 116
實例:擴展BaseAdapter實現不存儲列表項的ListView 119
2.5.3自動完成文本框(AutoCompleteTextView)的功能與用法120
2.5.4網格視圖(GridView)的功能與用法122
實例:帶預覽的圖片瀏覽器123
2.5. 5可展開的列表組件(ExpandableListView) 125
2.5.6 Spinner的功能與用法128
2.5.7 AdapterViewFlipper的功能與用法129
實例:自動播放的圖片庫129
2.5.8 StackView的功能與用法132
實例:疊在一起的圖片132
2.6第5組UI組件: ProgressBar及其子類134
2.6.1進度條(ProgressBar)的功能與用法134
2.6.2拖動條(SeekBar)的功能與用法137
實例:通過拖動滑塊來改變圖片的透明度138
2.6.3星級評分條(RatingBar)的功能與用法139
實例:通過星級改變圖片的透明度139
2.7第6組UI組件:ViewAnimator及其子類140
2.7.1 ViewSwitcher的功能與用法141
實例:仿Android系統的Launcher界面141
2.7.2圖像切換器(ImageSwitcher)的功能與用法145
實例:支持動畫的圖片瀏覽器145
2.7.3文本切換器(TextSwitcher)的功能與用法147
2.7.4 ViewFlipper的功能與用法147
實例:自動播放的圖片庫148
2.8各種雜項組件149
2.8.1使用Toast顯示提示信息框150
實例:帶圖片的消息提示150
2.8.2日曆視圖(CalendarView)組件的功能與用法151
實例:選擇您的生日152
2.8.3日期、時間選擇器(DatePicker和TimePicker)的功能與用法153
實例:用戶選擇日期、時間154
2.8.4數值選擇器(NumberPicker)的功能與用法156
實例:選擇您意向的價格範圍156
2.8.5搜索框(SearchView)的功能與用法157
實例:搜索158
2.8.6選項卡(TabHost)的功能和用法159
2.8.7滾動視圖(ScrollView)的功能與用法160
實例:可垂直和水平滾動的視圖160
2.8.8 Android 8的通知和通知Channel 161
實例:加薪通知162
2.9第7組UI組件:對話框164
2.9.1使用AlertDialog創建對話框164
實例:顯示提示消息的對話框165
實例:簡單列表項對話框166
實例:單選列表項對話框166
實例:多選列表項對話框167
實例:自定義列表項對話框168
實例:自定義View對話框168
2.9.2對話框風格的窗口169
2.9.3使用PopupWindow 170
2.9.4使用DatePickerDialog、TimePickerDialog 171
2.9.5使用ProgressDialog創建進度對話框172
2.10菜單173
2.10.1選項菜單和子菜單(SubMenu) 173
2.10.2使用監聽器來監聽菜單事件176
2.10.3創建多選菜單項和單選菜單項176
2.10.4設置與菜單項關聯的Activity 177
2.10.5上下文菜單178
2.10.6使用XML文件定義菜單179
實例:使用XML資源文件定義菜單180
2.10.7使用PopupMenu創建彈出式菜單183
2.11使用活動條(ActionBar) 184
2.11.1啟用ActionBar 184
2.11.2使用ActionBar顯示選項菜單項185
2.11.3啟用程序圖標導航187
2.11.4添加Action View 189
實例:“標題”上的時鐘189
2.11.5使用ActionBar實現Tab導航189
實例:ActionBar結合Fragment實現Tab導航190
2.11.6使用ActionBar實現下拉式導航192
實例:ActionBar結合Fragment實現下拉式導航192
2.12本章小結194
第3章Android的事件機制195
3.1 Android事件處理概述196
3.2基於監聽的事件處理196
3.2.1監聽的處理模型196
3.2.2事件和事件監聽器199
實例:控制飛機移動199
3.2.3內部類作為事件監聽器類202
3.2.4外部類作為事件監聽器類202
3.2.5 Activity本身作為事件監聽器類203
3.2.6 Lambda表達式作為事件監聽
作者介紹
多年來從事Java開發、移動開發等方面的培訓與研發工作,承接大型研發項目,有多款商用APP在Apple Store及Android市場上線。