Android自定义控件高级进阶与精彩实例

Android自定义控件高级进阶与精彩实例
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-12
版次: 1
ISBN: 9787121402081
定价: 129.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 588页
17人买过
  • 本书专注于介绍Android自定义控件进阶知识,并通过精彩的案例对各种绘制、动画技术进行了糅合讲解,读者可以通过本书从宏观层面、源码层面对Android自定义控件建立完整的认识。本书主要内容有3D特效的实现、高级矩阵知识、消息处理机制、派生类型的选择方法、多点触控及辅助类、RecyclerView的使用方法及3D卡片的实现、动画框架Lottie的讲解与实战等。本书适合中高级从业者对Android自定义控件相关知识进行查漏补缺和深入学习。 本名张恩伟,Android研发专家、CSDN博客专家、CSDN博客之星,《Android自定义控件入门与实战》《Android自定义控件高级进阶与精彩实例》作者,电子工业出版社博文视点优秀作者,曾就职于阿里巴巴,现就职于vivo。 第1章  3D特效 1
    1.1  3D特效概述 1
    1.1.1  2D坐标系与3D坐标系 3
    1.1.2  Android中的Camera类 5
    1.1.3  构造Camera类使用实例 8
    1.2  Camera类用法详解 12
    1.2.1  平移 12
    1.2.2  旋转 16
    1.2.3  改变Camera的位置 20
    1.3  实现3D卡片翻转效果 23
    1.3.1  框架搭建 23
    1.3.2  效果改进 29
    1.3.3  正背面显示不同的内容 34
    1.4  实现小米时钟的触摸倾斜效果 37
    1.4.1  框架搭建 38
    1.4.2  实现ClockViewGroup 39
    1.4.3  ClockViewGroup应用 45
    第2章  位置矩阵 46
    2.1  位置矩阵概述 46
    2.1.1  矩阵运算 46
    2.1.2  位置矩阵简介 48
    2.2  Matrix类中函数用法详解(一) 51
    2.2.1  基本函数 51
    2.2.2  前乘与后乘 55
    2.2.3  其他功能函数之缩放(Scale) 59
    2.2.4  其他功能函数之错切(Skew) 67
    2.2.5  其他功能函数之setSinCos 72
    2.3  Matrix类中函数用法详解(二) 75
    2.3.1   mapPoints 75
    2.3.2  其他map相关函数 77
    2.3.3  setPolyToPoly 79
    2.3.4  setRectToRect 82
    2.3.5  其他函数 85
    2.3.6  Matrix与Canvas 87
    2.4  折叠布局实战(一)DD核心原理 88
    2.4.1  折叠原理概述 89
    2.4.2  实现完整折叠效果 101
    2.4.3  添加阴影效果 105
    2.5  折叠布局实战(二)DD折叠菜单 108
    2.5.1  使用ViewGroup实现折叠效果 109
    2.5.2  实现折叠菜单 114
    第3章  派生类型的选择与实例 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  显示删除图标 144
    3.2.2  点击删除图标并清空文字 147
    3.3  实现圆角布局 148
    3.3.1  实现布局类 148
    3.3.2  使用布局类 149
    3.3.3  修复背景问题 150
    第4章  消息处理 154
    4.1  Android事件分发机制 154
    4.1.1  概述 154
    4.1.2  不包含onInterceptTouchEvent函数的ACTION_DOWN消息传递流程 156
    4.1.3  onInterceptTouchEvent函数的ACTION_DOWN消息传递流程 161
    4.1.4  关于ACTION_MOVE和ACTION_UP消息传递流程 164
    4.1.5  在ACTION_MOVE消息到来时拦截 168
    4.2  消息拦截实战DD实现可拖动的方向按键 173
    4.2.1  框架搭建 174
    4.2.2  实现拖动效果 178
    4.3  坐标系 181
    4.3.1  屏幕坐标系和数学坐标系的区别 182
    4.3.2  View坐标系 182
    4.3.3  MotionEvent提供的函数 186
    4.4  详解requestDisallowInterceptTouchEvent函数 187
    4.4.1  requestDisallowInterceptTouchEvent函数概述 187
    4.4.2  尝试使用requestDisallowInterceptTouchEvent函数 187
    4.5  滑动冲突处理原理与实战 192
    4.5.1  常见的滑动冲突场景 193
    4.5.2  解决滑动冲突问题的思路 193
    4.5.3  滑动冲突解决方法 194
    4.5.4  滑动冲突实战 196
    第5章  多点触控详解 203
    5.1  多点触控基本知识 203
    5.1.1  概述 203
    5.1.2  单点触控与多点触控 203
    5.1.3  多点触控 206
    5.1.4  实例:追踪第2根手指 207
    5.1.5  多点触控与ACTION_MOVE消息 211
    5.1.6  其他获取函数 213
    5.2  拖动图片控件与多点触控 216
    5.2.1  单点触控下的拖动图片控件 216
    5.2.2  多点触控下的拖动图片控件 220
    5.3  制作双指缩放控件 222
    5.3.1  原理概述 222
    5.3.2  实现可缩放的文本控件 223
    第6章  工具类 228
    6.1  Scroller工具类 228
    6.1.1  探讨scrollTo与scrollBy函数 228
    6.1.2  Scroller概述 234
    6.1.3  改造demo 236
    6.1.4  实战:Android滑块开关 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函数 270
    6.3  实现QQ侧边栏效果 275
    6.3.1  基本功能实现 276
    6.3.2  添加手指释放时的动画 280
    6.3.3  展开侧边栏的实现原理 281
    6.3.4  实现展开侧边栏 283
    6.3.5  添加侧边栏的展开/关闭动画 287
    6.4  ViewDragHelper类源码解析 289
    6.4.1  创建ViewDragHelper实例 289
    6.4.2  消息不被子控件消费的Touch事件的处理方法 291
    6.4.3  消息被子控件消费的Touch事件的处理方法 314
    6.4.4  遗留问题解析 320
    6.5  ViewConfiguration类 323
    6.5.1  距离相关函数 324
    6.5.2  速度相关函数 325
    6.5.3  时间相关函数 325
    6.5.4  其他函数 326
    第7章  RecyclerView 327
    7.1  RecyclerView概述 328
    7.1.1  导入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  添加滑动效果 362
    7.4  RecyclerView回收复用HolderView的实现方式(一) 367
    7.4.1  RecyclerView是否会自动回收复用HolderView 368
    7.4.2  RecyclerView回收复用HolderView的原理 370
    7.4.3  给CustomLayoutManager添加回收复用HolderView功能 374
    7.5  RecyclerView回收复用HolderView的实现方式(二) 386
    7.5.1  初步实现 386
    7.5.2  继续优化:回收时的布局 392
    7.6  ItemTouchHelper 396
    7.6.1  ItemTouchHelper的基本功能实现 397
    7.6.2  真正实现滑动删除与拖曳移动 401
    7.6.3  其他功能:交互时的背景变化 402
    7.6.4  GridView中的滑动/拖动效果 405
    7.6.5  getMovementFlags中的各种flag 407
    7.6.6  禁用拖曳与指定拖曳 409
    7.6.7  onChildDraw函数 417
    7.6.8  其他函数 419
    7.6.9  布局方向 421
    第8章  RecyclerView特效实战 423
    8.1  滑动画廊控件 423
    8.1.1  实现item布局 424
    8.1.2  实现横向布局 427
    8.1.3  实现横向滑动 430
    8.1.4  实现卡片叠加 433
    8.1.5  修改卡片起始位置 434
    8.1.6  更改默认显示顺序 435
    8.1.7  添加滑动缩放功能 441
    8.1.8  bug修复 444
    8.1.9  拓展1:fling校正 446
    8.1.10  拓展2:制作3D画廊 452
    8.2  仿QQ列表滑动删除效果 454
    8.2.1  有问题的ItemTouchHelper之实现demo 455
    8.2.2  有问题的ItemTouchHelper之显示出底部操作栏 459
    8.2.3  改造ItemTouchHelper 466
    8.2.4  使用ItemTouchHelperExtension实现 467
    8.3  使用SnapHelper实现滑动对齐 470
    8.3.1  SnapHelper概述 471
    8.3.2  LinearSnapHelper的使用 472
    8.3.3  PagerSnapHelper的使用 475
    第9章  精彩自定义控件实战 476
    9.1  华为时钟 476
    9.1.1  实现原理 477
    9.1.2  实现遮罩叠加 477
    9.1.3  实现遮罩旋转 481
    9.1.4  显示时间 483
    9.1.5  封装组件 486
    9.2  圆环动画 488
    9.2.1  圆环扇形原理 489
    9.2.2  初步实现控件圆环效果 492
    9.2.3  制作多彩圆环 497
    9.2.4  实现渐显动画 499
    9.3  自定义控件与组合控件实战 503
    9.3.1  初步实现VolumeView 505
    9.3.2  实现音量动效 511
    9.3.3  组合控件 514
    第10章  Lottie动画框架 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社区 529
    10.1.6  Lottie动画优势 531
    10.2  Lottie与AE 531
    10.2.1  环境安装 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  如何动起来 573
    10.4.6  疑问解答 573
  • 内容简介:
    本书专注于介绍Android自定义控件进阶知识,并通过精彩的案例对各种绘制、动画技术进行了糅合讲解,读者可以通过本书从宏观层面、源码层面对Android自定义控件建立完整的认识。本书主要内容有3D特效的实现、高级矩阵知识、消息处理机制、派生类型的选择方法、多点触控及辅助类、RecyclerView的使用方法及3D卡片的实现、动画框架Lottie的讲解与实战等。本书适合中高级从业者对Android自定义控件相关知识进行查漏补缺和深入学习。
  • 作者简介:
    本名张恩伟,Android研发专家、CSDN博客专家、CSDN博客之星,《Android自定义控件入门与实战》《Android自定义控件高级进阶与精彩实例》作者,电子工业出版社博文视点优秀作者,曾就职于阿里巴巴,现就职于vivo。
  • 目录:
    第1章  3D特效 1
    1.1  3D特效概述 1
    1.1.1  2D坐标系与3D坐标系 3
    1.1.2  Android中的Camera类 5
    1.1.3  构造Camera类使用实例 8
    1.2  Camera类用法详解 12
    1.2.1  平移 12
    1.2.2  旋转 16
    1.2.3  改变Camera的位置 20
    1.3  实现3D卡片翻转效果 23
    1.3.1  框架搭建 23
    1.3.2  效果改进 29
    1.3.3  正背面显示不同的内容 34
    1.4  实现小米时钟的触摸倾斜效果 37
    1.4.1  框架搭建 38
    1.4.2  实现ClockViewGroup 39
    1.4.3  ClockViewGroup应用 45
    第2章  位置矩阵 46
    2.1  位置矩阵概述 46
    2.1.1  矩阵运算 46
    2.1.2  位置矩阵简介 48
    2.2  Matrix类中函数用法详解(一) 51
    2.2.1  基本函数 51
    2.2.2  前乘与后乘 55
    2.2.3  其他功能函数之缩放(Scale) 59
    2.2.4  其他功能函数之错切(Skew) 67
    2.2.5  其他功能函数之setSinCos 72
    2.3  Matrix类中函数用法详解(二) 75
    2.3.1   mapPoints 75
    2.3.2  其他map相关函数 77
    2.3.3  setPolyToPoly 79
    2.3.4  setRectToRect 82
    2.3.5  其他函数 85
    2.3.6  Matrix与Canvas 87
    2.4  折叠布局实战(一)DD核心原理 88
    2.4.1  折叠原理概述 89
    2.4.2  实现完整折叠效果 101
    2.4.3  添加阴影效果 105
    2.5  折叠布局实战(二)DD折叠菜单 108
    2.5.1  使用ViewGroup实现折叠效果 109
    2.5.2  实现折叠菜单 114
    第3章  派生类型的选择与实例 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  显示删除图标 144
    3.2.2  点击删除图标并清空文字 147
    3.3  实现圆角布局 148
    3.3.1  实现布局类 148
    3.3.2  使用布局类 149
    3.3.3  修复背景问题 150
    第4章  消息处理 154
    4.1  Android事件分发机制 154
    4.1.1  概述 154
    4.1.2  不包含onInterceptTouchEvent函数的ACTION_DOWN消息传递流程 156
    4.1.3  onInterceptTouchEvent函数的ACTION_DOWN消息传递流程 161
    4.1.4  关于ACTION_MOVE和ACTION_UP消息传递流程 164
    4.1.5  在ACTION_MOVE消息到来时拦截 168
    4.2  消息拦截实战DD实现可拖动的方向按键 173
    4.2.1  框架搭建 174
    4.2.2  实现拖动效果 178
    4.3  坐标系 181
    4.3.1  屏幕坐标系和数学坐标系的区别 182
    4.3.2  View坐标系 182
    4.3.3  MotionEvent提供的函数 186
    4.4  详解requestDisallowInterceptTouchEvent函数 187
    4.4.1  requestDisallowInterceptTouchEvent函数概述 187
    4.4.2  尝试使用requestDisallowInterceptTouchEvent函数 187
    4.5  滑动冲突处理原理与实战 192
    4.5.1  常见的滑动冲突场景 193
    4.5.2  解决滑动冲突问题的思路 193
    4.5.3  滑动冲突解决方法 194
    4.5.4  滑动冲突实战 196
    第5章  多点触控详解 203
    5.1  多点触控基本知识 203
    5.1.1  概述 203
    5.1.2  单点触控与多点触控 203
    5.1.3  多点触控 206
    5.1.4  实例:追踪第2根手指 207
    5.1.5  多点触控与ACTION_MOVE消息 211
    5.1.6  其他获取函数 213
    5.2  拖动图片控件与多点触控 216
    5.2.1  单点触控下的拖动图片控件 216
    5.2.2  多点触控下的拖动图片控件 220
    5.3  制作双指缩放控件 222
    5.3.1  原理概述 222
    5.3.2  实现可缩放的文本控件 223
    第6章  工具类 228
    6.1  Scroller工具类 228
    6.1.1  探讨scrollTo与scrollBy函数 228
    6.1.2  Scroller概述 234
    6.1.3  改造demo 236
    6.1.4  实战:Android滑块开关 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函数 270
    6.3  实现QQ侧边栏效果 275
    6.3.1  基本功能实现 276
    6.3.2  添加手指释放时的动画 280
    6.3.3  展开侧边栏的实现原理 281
    6.3.4  实现展开侧边栏 283
    6.3.5  添加侧边栏的展开/关闭动画 287
    6.4  ViewDragHelper类源码解析 289
    6.4.1  创建ViewDragHelper实例 289
    6.4.2  消息不被子控件消费的Touch事件的处理方法 291
    6.4.3  消息被子控件消费的Touch事件的处理方法 314
    6.4.4  遗留问题解析 320
    6.5  ViewConfiguration类 323
    6.5.1  距离相关函数 324
    6.5.2  速度相关函数 325
    6.5.3  时间相关函数 325
    6.5.4  其他函数 326
    第7章  RecyclerView 327
    7.1  RecyclerView概述 328
    7.1.1  导入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  添加滑动效果 362
    7.4  RecyclerView回收复用HolderView的实现方式(一) 367
    7.4.1  RecyclerView是否会自动回收复用HolderView 368
    7.4.2  RecyclerView回收复用HolderView的原理 370
    7.4.3  给CustomLayoutManager添加回收复用HolderView功能 374
    7.5  RecyclerView回收复用HolderView的实现方式(二) 386
    7.5.1  初步实现 386
    7.5.2  继续优化:回收时的布局 392
    7.6  ItemTouchHelper 396
    7.6.1  ItemTouchHelper的基本功能实现 397
    7.6.2  真正实现滑动删除与拖曳移动 401
    7.6.3  其他功能:交互时的背景变化 402
    7.6.4  GridView中的滑动/拖动效果 405
    7.6.5  getMovementFlags中的各种flag 407
    7.6.6  禁用拖曳与指定拖曳 409
    7.6.7  onChildDraw函数 417
    7.6.8  其他函数 419
    7.6.9  布局方向 421
    第8章  RecyclerView特效实战 423
    8.1  滑动画廊控件 423
    8.1.1  实现item布局 424
    8.1.2  实现横向布局 427
    8.1.3  实现横向滑动 430
    8.1.4  实现卡片叠加 433
    8.1.5  修改卡片起始位置 434
    8.1.6  更改默认显示顺序 435
    8.1.7  添加滑动缩放功能 441
    8.1.8  bug修复 444
    8.1.9  拓展1:fling校正 446
    8.1.10  拓展2:制作3D画廊 452
    8.2  仿QQ列表滑动删除效果 454
    8.2.1  有问题的ItemTouchHelper之实现demo 455
    8.2.2  有问题的ItemTouchHelper之显示出底部操作栏 459
    8.2.3  改造ItemTouchHelper 466
    8.2.4  使用ItemTouchHelperExtension实现 467
    8.3  使用SnapHelper实现滑动对齐 470
    8.3.1  SnapHelper概述 471
    8.3.2  LinearSnapHelper的使用 472
    8.3.3  PagerSnapHelper的使用 475
    第9章  精彩自定义控件实战 476
    9.1  华为时钟 476
    9.1.1  实现原理 477
    9.1.2  实现遮罩叠加 477
    9.1.3  实现遮罩旋转 481
    9.1.4  显示时间 483
    9.1.5  封装组件 486
    9.2  圆环动画 488
    9.2.1  圆环扇形原理 489
    9.2.2  初步实现控件圆环效果 492
    9.2.3  制作多彩圆环 497
    9.2.4  实现渐显动画 499
    9.3  自定义控件与组合控件实战 503
    9.3.1  初步实现VolumeView 505
    9.3.2  实现音量动效 511
    9.3.3  组合控件 514
    第10章  Lottie动画框架 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社区 529
    10.1.6  Lottie动画优势 531
    10.2  Lottie与AE 531
    10.2.1  环境安装 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  如何动起来 573
    10.4.6  疑问解答 573
查看详情
相关图书 / 更多
Android自定义控件高级进阶与精彩实例
Animate 2022二维动画制作案例教程(全视频微课版)
董佳佳、程远、金洪宇
Android自定义控件高级进阶与精彩实例
Android性能优化入门与实战
张世欣(拭心)
Android自定义控件高级进阶与精彩实例
Android图形显示系统
李先儒
Android自定义控件高级进阶与精彩实例
Animate CC 动画制作案例教程(第2版)
刘鹏程
Android自定义控件高级进阶与精彩实例
Android积木式编程开发:AppInventor2018离线中文版(第2版)
刘载兴、张燕燕 编
Android自定义控件高级进阶与精彩实例
Anisha Accidental Detective
Serena Patel 著;Emma McCann 绘
Android自定义控件高级进阶与精彩实例
Android自动化测试实战:Python+Appium +unittest
Storm 梁培峰
Android自定义控件高级进阶与精彩实例
AnEssayonthePrincipleofPopulationandOthe
Malthus, Thomas
Android自定义控件高级进阶与精彩实例
Android移动应用基础教程(Android Studio)(第3版)
黑马程序员
Android自定义控件高级进阶与精彩实例
Ansys Workbench 2022中文版有限元分析从入门到精通
CAD/CAM/CAE技术联盟
Android自定义控件高级进阶与精彩实例
Animate 2022中文版入门与提高
胡仁喜、王昌盛、李华
Android自定义控件高级进阶与精彩实例
Ansys Fluent中文版流场分析从入门到精通
曾建邦 单丰武
您可能感兴趣 / 更多