定 價(jià):¥129.00
作 者: | 啟艦 著 |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121402081 | 出版時(shí)間: | 2020-12-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 588 | 字?jǐn)?shù): |
第1章 3D特效 1
1.1 3D特效概述 1
1.1.1 2D坐標(biāo)系與3D坐標(biāo)系 3
1.1.2 Android中的Camera類 5
1.1.3 構(gòu)造Camera類使用實(shí)例 8
1.2 Camera類用法詳解 12
1.2.1 平移 12
1.2.2 旋轉(zhuǎn) 16
1.2.3 改變Camera的位置 20
1.3 實(shí)現(xiàn)3D卡片翻轉(zhuǎn)效果 23
1.3.1 框架搭建 23
1.3.2 效果改進(jìn) 29
1.3.3 正背面顯示不同的內(nèi)容 34
1.4 實(shí)現(xiàn)小米時(shí)鐘的觸摸傾斜效果 37
1.4.1 框架搭建 38
1.4.2 實(shí)現(xiàn)ClockViewGroup 39
1.4.3 ClockViewGroup應(yīng)用 45
第2章 位置矩陣 46
2.1 位置矩陣概述 46
2.1.1 矩陣運(yùn)算 46
2.1.2 位置矩陣簡介 48
2.2 Matrix類中函數(shù)用法詳解(一) 51
2.2.1 基本函數(shù) 51
2.2.2 前乘與后乘 55
2.2.3 其他功能函數(shù)之縮放(Scale) 59
2.2.4 其他功能函數(shù)之錯(cuò)切(Skew) 67
2.2.5 其他功能函數(shù)之setSinCos 72
2.3 Matrix類中函數(shù)用法詳解(二) 75
2.3.1 mapPoints 75
2.3.2 其他map相關(guān)函數(shù) 77
2.3.3 setPolyToPoly 79
2.3.4 setRectToRect 82
2.3.5 其他函數(shù) 85
2.3.6 Matrix與Canvas 87
2.4 折疊布局實(shí)戰(zhàn)(一)――核心原理 88
2.4.1 折疊原理概述 89
2.4.2 實(shí)現(xiàn)完整折疊效果 101
2.4.3 添加陰影效果 105
2.5 折疊布局實(shí)戰(zhàn)(二)――折疊菜單 108
2.5.1 使用ViewGroup實(shí)現(xiàn)折疊效果 109
2.5.2 實(shí)現(xiàn)折疊菜單 114
第3章 派生類型的選擇與實(shí)例 121
3.1 派生類型的選擇方法概述 121
3.1.1 View類及ViewGroup類的選擇 121
3.1.2 繼承自View類的處理流程 123
3.1.3 繼承自View子類的處理流程 132
3.1.4 繼承自ViewGroup類的處理流程 135
3.1.5 繼承自ViewGroup子控件類 140
3.2 自定義EditText 144
3.2.1 顯示刪除圖標(biāo) 144
3.2.2 點(diǎn)擊刪除圖標(biāo)并清空文字 147
3.3 實(shí)現(xiàn)圓角布局 148
3.3.1 實(shí)現(xiàn)布局類 148
3.3.2 使用布局類 149
3.3.3 修復(fù)背景問題 150
第4章 消息處理 154
4.1 Android事件分發(fā)機(jī)制 154
4.1.1 概述 154
4.1.2 不包含onInterceptTouchEvent函數(shù)的ACTION_DOWN消息傳遞流程 156
4.1.3 onInterceptTouchEvent函數(shù)的ACTION_DOWN消息傳遞流程 161
4.1.4 關(guān)于ACTION_MOVE和ACTION_UP消息傳遞流程 164
4.1.5 在ACTION_MOVE消息到來時(shí)攔截 168
4.2 消息攔截實(shí)戰(zhàn)――實(shí)現(xiàn)可拖動(dòng)的方向按鍵 173
4.2.1 框架搭建 174
4.2.2 實(shí)現(xiàn)拖動(dòng)效果 178
4.3 坐標(biāo)系 181
4.3.1 屏幕坐標(biāo)系和數(shù)學(xué)坐標(biāo)系的區(qū)別 182
4.3.2 View坐標(biāo)系 182
4.3.3 MotionEvent提供的函數(shù) 186
4.4 詳解requestDisallowInterceptTouchEvent函數(shù) 187
4.4.1 requestDisallowInterceptTouchEvent函數(shù)概述 187
4.4.2 嘗試使用requestDisallowInterceptTouchEvent函數(shù) 187
4.5 滑動(dòng)沖突處理原理與實(shí)戰(zhàn) 192
4.5.1 常見的滑動(dòng)沖突場景 193
4.5.2 解決滑動(dòng)沖突問題的思路 193
4.5.3 滑動(dòng)沖突解決方法 194
4.5.4 滑動(dòng)沖突實(shí)戰(zhàn) 196
第5章 多點(diǎn)觸控詳解 203
5.1 多點(diǎn)觸控基本知識(shí) 203
5.1.1 概述 203
5.1.2 單點(diǎn)觸控與多點(diǎn)觸控 203
5.1.3 多點(diǎn)觸控 206
5.1.4 實(shí)例:追蹤第2根手指 207
5.1.5 多點(diǎn)觸控與ACTION_MOVE消息 211
5.1.6 其他獲取函數(shù) 213
5.2 拖動(dòng)圖片控件與多點(diǎn)觸控 216
5.2.1 單點(diǎn)觸控下的拖動(dòng)圖片控件 216
5.2.2 多點(diǎn)觸控下的拖動(dòng)圖片控件 220
5.3 制作雙指縮放控件 222
5.3.1 原理概述 222
5.3.2 實(shí)現(xiàn)可縮放的文本控件 223
第6章 工具類 228
6.1 Scroller工具類 228
6.1.1 探討scrollTo與scrollBy函數(shù) 228
6.1.2 Scroller概述 234
6.1.3 改造demo 236
6.1.4 實(shí)戰(zhàn):Android滑塊開關(guān) 240
6.2 ViewDragHelper類簡介 251
6.2.1 概述 251
6.2.2 簡單用法 252
6.2.3 疑問解答 260
6.2.4 邊界判斷 265
6.2.5 onViewReleased函數(shù) 270
6.3 實(shí)現(xiàn)QQ側(cè)邊欄效果 275
6.3.1 基本功能實(shí)現(xiàn) 276
6.3.2 添加手指釋放時(shí)的動(dòng)畫 280
6.3.3 展開側(cè)邊欄的實(shí)現(xiàn)原理 281
6.3.4 實(shí)現(xiàn)展開側(cè)邊欄 283
6.3.5 添加側(cè)邊欄的展開/關(guān)閉動(dòng)畫 287
6.4 ViewDragHelper類源碼解析 289
6.4.1 創(chuàng)建ViewDragHelper實(shí)例 289
6.4.2 消息不被子控件消費(fèi)的Touch事件的處理方法 291
6.4.3 消息被子控件消費(fèi)的Touch事件的處理方法 314
6.4.4 遺留問題解析 320
6.5 ViewConfiguration類 323
6.5.1 距離相關(guān)函數(shù) 324
6.5.2 速度相關(guān)函數(shù) 325
6.5.3 時(shí)間相關(guān)函數(shù) 325
6.5.4 其他函數(shù) 326
第7章 RecyclerView 327
7.1 RecyclerView概述 328
7.1.1 導(dǎo)入support-v7包 328
7.1.2 RecyclerView的簡單使用 329
7.1.3 其他LayoutManager 334
7.1.4 加載不同類型的View 340
7.2 添加分割線 345
7.2.1 引入ItemDecoration 345
7.2.2 自定義ItemDecoration 347
7.3 自定義LayoutManager 359
7.3.1 初始化展示界面 360
7.3.2 添加滑動(dòng)效果 362
7.4 RecyclerView回收復(fù)用HolderView的實(shí)現(xiàn)方式(一) 367
7.4.1 RecyclerView是否會(huì)自動(dòng)回收復(fù)用HolderView 368
7.4.2 RecyclerView回收復(fù)用HolderView的原理 370
7.4.3 給CustomLayoutManager添加回收復(fù)用HolderView功能 374
7.5 RecyclerView回收復(fù)用HolderView的實(shí)現(xiàn)方式(二) 386
7.5.1 初步實(shí)現(xiàn) 386
7.5.2 繼續(xù)優(yōu)化:回收時(shí)的布局 392
7.6 ItemTouchHelper 396
7.6.1 ItemTouchHelper的基本功能實(shí)現(xiàn) 397
7.6.2 真正實(shí)現(xiàn)滑動(dòng)刪除與拖曳移動(dòng) 401
7.6.3 其他功能:交互時(shí)的背景變化 402
7.6.4 GridView中的滑動(dòng)/拖動(dòng)效果 405
7.6.5 getMovementFlags中的各種flag 407
7.6.6 禁用拖曳與指定拖曳 409
7.6.7 onChildDraw函數(shù) 417
7.6.8 其他函數(shù) 419
7.6.9 布局方向 421
第8章 RecyclerView特效實(shí)戰(zhàn) 423
8.1 滑動(dòng)畫廊控件 423
8.1.1 實(shí)現(xiàn)item布局 424
8.1.2 實(shí)現(xiàn)橫向布局 427
8.1.3 實(shí)現(xiàn)橫向滑動(dòng) 430
8.1.4 實(shí)現(xiàn)卡片疊加 433
8.1.5 修改卡片起始位置 434
8.1.6 更改默認(rèn)顯示順序 435
8.1.7 添加滑動(dòng)縮放功能 441
8.1.8 bug修復(fù) 444
8.1.9 拓展1:fling校正 446
8.1.10 拓展2:制作3D畫廊 452
8.2 仿QQ列表滑動(dòng)刪除效果 454
8.2.1 有問題的ItemTouchHelper之實(shí)現(xiàn)demo 455
8.2.2 有問題的ItemTouchHelper之顯示出底部操作欄 459
8.2.3 改造ItemTouchHelper 466
8.2.4 使用ItemTouchHelperExtension實(shí)現(xiàn) 467
8.3 使用SnapHelper實(shí)現(xiàn)滑動(dòng)對(duì)齊 470
8.3.1 SnapHelper概述 471
8.3.2 LinearSnapHelper的使用 472
8.3.3 PagerSnapHelper的使用 475
第9章 精彩自定義控件實(shí)戰(zhàn) 476
9.1 華為時(shí)鐘 476
9.1.1 實(shí)現(xiàn)原理 477
9.1.2 實(shí)現(xiàn)遮罩疊加 477
9.1.3 實(shí)現(xiàn)遮罩旋轉(zhuǎn) 481
9.1.4 顯示時(shí)間 483
9.1.5 封裝組件 486
9.2 圓環(huán)動(dòng)畫 488
9.2.1 圓環(huán)扇形原理 489
9.2.2 初步實(shí)現(xiàn)控件圓環(huán)效果 492
9.2.3 制作多彩圓環(huán) 497
9.2.4 實(shí)現(xiàn)漸顯動(dòng)畫 499
9.3 自定義控件與組合控件實(shí)戰(zhàn) 503
9.3.1 初步實(shí)現(xiàn)VolumeView 505
9.3.2 實(shí)現(xiàn)音量動(dòng)效 511
9.3.3 組合控件 514
第10章 Lottie動(dòng)畫框架 519
10.1 Lottie概述 519
10.1.1 Lottie是什么 519
10.1.2 Lottie demo之基本功能 521
10.1.3 Lottie demo之在線加載Lottie 523
10.1.4 Lottie demo之其他功能 528
10.1.5 Lottie社區(qū) 529
10.1.6 Lottie動(dòng)畫優(yōu)勢 531
10.2 Lottie與AE 531
10.2.1 環(huán)境安裝 531
10.2.2 Lottie完整使用流程 532
10.2.3 Lottie JSON與AE 536
10.2.4 圖片圖層的使用 542
10.2.5 文本圖層的使用 544
10.2.6 Lottie支持的AE功能列表 546
10.3 Lottie的使用方法 547
10.3.1 初步使用Lottie 547
10.3.2 Lottie在代碼中的使用 552
10.4 Lottie核心原理 567
10.4.1 概述 567
10.4.2 初始化 567
10.4.3 測量與布局 570
10.4.4 繪圖 571
10.4.5 如何動(dòng)起來 573
10.4.6 疑問解答 573