《Android 9編程通俗演義》是清華大學出版社出版的一本圖書。
基本介紹
- 作者: 牛搞
- 出版社:清華大學出版社
- ISBN:9787302523932
圖書內容,圖書目錄,
圖書內容
本書嚴格參考Android 9官方開發文檔的邏輯,全面講解Android開發中的各種技術,章節內容循序漸進,精心安排,翔實全面,且又通俗易懂,既不是術語的羅列,也不是不知所云的翻譯。 本書分為18章,內容包括配置Android 9開發環境、第一個App、UI資源與Layout、各種Layout控制項、代碼操作控制項、Activity導航、Theme、Fragment、選單、動畫、自定義控制項、RecyclerView、模仿QQApp界面、實現聊天界面、多執行緒、網路通信、異步調用庫RxJava、實現聊天功能等。 本書適合Android編程初學者、Android套用開發人員,也適合高等院校和培訓學校相關專業的師生教學參考。
圖書目錄
第1章 配置Android開發環境 1
1.1 下載Android Studio 1
1.2 安裝Android Studio 2
1.3 配置Android SDK 4
1.4 四原則 6
第2章 第一個App 8
2.1 創建第一個App 8
2.2 運行App 12
2.2.1 在真實設備上調試 13
2.2.2 配置虛擬機 15
2.2.3 啟動App 18
2.2.4 x86虛擬機加速 19
2.2.5 App的樣子 21
2.3 工程裡面有什麼 22
第3章 UI資源與Layout 24
3.1 Layout 24
3.2 改動Layout 27
3.2.1 添加圖像資源 30
3.2.2 顯示自己的圖像 32
3.2.3 XML小解 35
3.2.4 Layout源碼解釋 36
3.3 排版姿方法之ConstraintLayout 37
3.3.1 ConstraintLayout的原理 38
3.3.2 子控制項在ConstraintLayout中居左或居右 39
3.3.3 子控制項在ConstraintLayout中橫向居中 40
3.3.4 子控制項在ConstraintLayout中居中偏左 41
3.3.5 子控制項A在子控制項B的上面 42
3.3.6 子控制項A與子控制項B左邊對齊 43
3.3.7 設定子控制項的寬和高 44
3.3.8 子控制項的寬和高保持一定比例 45
3.4 排版方法之RelativeLayout 48
3.4.1 把ConstraintLayout改為RelativeLayout 49
3.4.2 左右對齊與居中 51
3.4.3 充滿整個父控制項 52
3.4.4 兄弟之間相對排 53
3.4.5 dp是什麼 55
3.4.6 使用RelativeLayout設計登錄頁面 56
3.5 讓內容“滾” 63
3.5.1 添加ScrollView作為最外層容器 63
3.5.2 改正在ScrollView下的排版 66
3.6 添加新的Layout資源 70
第4章 各種Layout控制項 72
4.1 FrameLayout 72
4.2 LinearLayout 72
4.2.1 縱向LinearLayout中子控制項橫向居中 74
4.2.2 子控制項均勻分布 75
4.2.3 子控制項按比例分布 76
4.2.4 用LinearLayout實現登錄界面 77
4.3 GridLayout 79
4.4 TableLayout 80
第5章 代碼操作控制項 81
5.1 在Activity中創建界面 81
5.1.1 類R 82
5.1.2 Activity的父類 82
5.1.3 四大組件 82
5.2 在代碼中操作控制項 83
5.2.1 獲取View 84
5.2.2 回響View的事件 86
5.2.3 添加依賴庫 87
5.2.4 顯示提示 90
第6章 Activity導航 93
6.1 創建註冊頁面 93
6.2 啟動註冊頁面 94
6.3 設計註冊頁面 98
6.4 回響註冊按鈕進行註冊 102
6.5 獲取頁面返回的數據 103
6.5.1 避免常量重複出現 105
6.5.2 日誌輸出 106
6.5.3 將返回的數據設定到控制項中 107
6.6 Action Bar上的返回圖示 109
6.6.1 原生Action Bar與MaterailDesign Action Bar 109
6.6.2 登錄頁面顯示返回圖示 111
6.6.3 註冊頁面顯示返回圖示 112
第7章 Theme 113
第8章 Fragment 115
8.1 弄巧成拙的Activity 115
8.2 使用Fragment 117
8.3 改造登錄頁面 120
8.3.1 添加layout檔案 120
8.3.2 改變layout檔案的內容 121
8.3.3 添加Fragment類 122
8.3.4 將Fragment放到Activity中 126
8.3.5 創建註冊Fragment 126
8.3.6 顯示RegisterFragment 128
8.3.7 通過AppBar控制頁面導航 129
8.3.8 實現RegisterFragment的邏輯 129
8.3.9 LoginFragment中讀出用戶名和密碼 131
8.3.10 Fragment的生命周期 132
8.3.11 Fragment狀態保存與恢復 133
8.3.12 總結 134
8.4 對話框 138
8.4.1 創建子類 138
8.4.2 顯示對話框 140
8.4.3 回響返回鍵 141
8.4.4 取消輸入控制項的焦點 142
第9章 選單 143
9.1 添加選單資源 144
9.2 重寫onCreateOptionsMenu( ) 147
9.3 嵌套選單 148
9.4 選單項分組 150
9.5 回響選單項 150
9.6 其他選單類型 152
第10章 動畫 153
10.1 動畫原理 153
10.2 三種動畫 154
10.3 View動畫 155
10.3.1 繞著中心轉 156
10.3.2 不要反向轉 157
10.3.3 舉一反三 158
10.3.4 動畫組 158
10.4 屬性動畫 159
10.4.1 旋轉動畫 159
10.4.2 動畫組 160
10.5 動畫資源 164
10.6 Layout動畫 167
10.6.1 向Layout控制項添加子控制項 167
10.6.2 ViewGroup 168
10.6.3 設定排版動畫 169
10.7 轉場動畫 171
10.7.1 使用默認轉場動畫 171
10.7.2 自定義轉場動畫 172
第11章 自定義控制項 176
11.1 創建一個Custom View 177
11.2 Custom View類 179
11.2.1 構造方法 179
11.2.2 onDraw()方法 180
11.2.3 init()方法 182
11.2.4 自定義屬性 184
11.2.5 作畫 186
11.3 創建圓形圖像控制項 188
11.3.1 將Drawable轉成Bitmap 191
11.3.2 變換矩陣 192
11.3.3 自定義屬性的改動 193
11.3.4 類的所有代碼 195
第12章 RecyclerView 200
12.1 基本用法 200
12.2 顯示多條簡單數據 201
12.2.1 添加新頁面 201
12.2.2 創建Adapter子類 203
12.2.3 設定RecyclerView 205
12.2.4 用集合保存數據 206
12.3 讓子控制項複雜起來 207
12.3.1 創建條目的Layout資源 208
12.3.2 套用條目Layout資源 210
12.3.3 明顯區分每一行 212
12.3.4 創建音樂信息類 214
12.3.5 使用音樂信息類 215
12.4 增刪改 217
12.4.1 增加一條 217
12.4.2 其他操作 219
12.5 局部刷新 219
12.6 運行效率最佳化 220
12.7 回響item選擇 221
12.8 顯示不同類型的行 223
12.8.1 添加新Item數據類 224
12.8.2 添加Item Layout 225
12.8.3 創建新的ViewHolder類 226
12.8.4 區分不同的View Type 227
第13章 模仿QQApp界面 230
13.1 創建新的Android項目 230
13.2 設計登錄頁面 230
13.2.1 創建登錄Fragment 230
13.2.2 設計登錄界面 232
13.2.3 UI代碼 233
13.2.4 顯示登錄歷史 236
13.2.5 設計歷史選單項 240
13.2.6 實現顯示歷史的代碼 241
13.2.7 selector資源 243
13.2.8 layer_list資源 244
13.2.9 定製控制項背景 245
13.2.10 動畫顯示選單 246
13.2.11 讓選單消失 247
13.2.12 回響選中選單項 248
13.3 QQ主頁面設計 250
13.3.1 設定導航欄 254
13.3.2 設定Tab欄 255
13.3.3 改變Tab Item圖示 258
13.3.4 為ViewPager添加內容 259
13.3.5 ViewPager與TabLayout聯動 261
13.3.6 在Tab Item中顯示圖像 263
13.3.7 禁止ViewPager滑動翻頁 266
13.3.8 創建“訊息”頁 267
13.3.9 顯示氣泡選單 274
13.3.10 抽屜效果 293
13.3.11 創建“聯繫人”頁 308
13.3.12 創建“動態”頁 328
13.3.13 實現搜尋功能 329
第14章 實現聊天界面 339
14.1 實現原理分析 339
14.2 創建聊天Activity 340
14.2.1 activity_chat.xml 340
14.2.2 類ChatActivity 342
14.2.3 顯示訊息的layout 344
14.3 啟動ChatActivity 346
14.4 模擬聊天 347
第15章 多執行緒 349
15.1 執行緒與進程的概念 349
15.2 創建執行緒 350
15.3 創建執行緒的另一種方法 352
15.4 多個執行緒操作同一個對象 353
15.5 單執行緒中異步執行 356
15.6 多執行緒間同步執行 357
15.7 在其他執行緒中操作界面 358
15.8 HandlerThread 360
15.9 執行緒的退出 361
第16章 網路通信 363
16.1 網路基礎知識 363
16.1.1 IP位址與域名 363
16.1.2 TCP與UDP 364
16.1.3 HTTP協定 364
16.2 Android HTTP通信 365
16.3 使用“異步任務” 369
16.3.1 定義異步任務類 369
16.3.2 使用異步任務類 370
16.3.3 完善異步任務類 371
16.3.4 異步任務的退出 378
16.4 使用OkHttp進行網路通信 380
16.4.1 使用OkHttp下載圖像 381
16.4.2 創建Web服務端 383
16.4.3 使用OkHttp下載數據 385
16.4.4 JSON轉對象 387
16.4.5 使用OkHttp上傳檔案 388
16.5 使用Retrofit進行網路通信 391
16.5.1 加入Retrofit的依賴項 391
16.5.2 用Retrofit下載文本 392
16.5.3 用Retrofit下載圖像 393
16.5.4 用Retrofit上傳圖像 394
第17章 異步調用庫RxJava 397
17.1 小試牛刀 397
17.2 精簡傳送代碼 400
17.3 精簡接收代碼 401
17.4 RxJava與Lamda 402
17.5 map與flatmap 404
17.6 並行map 405
17.7 RxJava與Retrofit合體 406
17.8 RxJava Retrofit合體並行執行 407
第18章 實現聊天功能 409
18.1 改進登錄功能 411
18.1.1 制定統一的數據返回結構 411
18.1.2 向ChatService中添加方法 413
18.1.3 登錄請求 414
18.1.4 保存自己的信息 417
18.1.5 防止按鈕重複點擊 418
18.1.6 顯示進度條 418
18.2 獲取聯繫人 421
18.2.1 修改Retrofit接口 422
18.2.2 RxJava定時器 422
18.2.3 獲取並顯示聯繫人 423
18.2.4 出錯重試 425
18.2.5 停止網路連線 425
18.3 發出聊天訊息 427
18.3.1 定義承載訊息的類 427
18.3.2 在接口中添加方法 428
18.3.3 在ChatActivity中初始化Retrofit 429
18.3.4 上傳訊息 429
18.3.5 失敗重傳 431
18.4 獲取聊天訊息 431
18.4.1 為ChatService增加方法 431
18.4.2 發出請求 431