展开全部

主编推荐语

本书深入解析Android自定义控件高级知识,涵盖3D特效、矩阵、动画框架等实战案例,适合中高级从业者。

内容简介

本书专注于介绍Android自定义控件高级进阶知识,并通过精彩的案例对各种绘制、动画技术进行了糅合讲解,通过本书可以从宏观层面、源码层面对Android自定义控件建立完整的认识。本书主要内容有3D特效的实现、高级矩阵知识、消息处理机制、派生类型的选择方法、多点触控及辅助类、RecyclerView的使用方法及3D卡片的实现、动画框架Lottie讲解与实战等。本书适合中高级从业者对Android自定义控件相关知识进行查漏补缺和深入学习。如果你是Android自定义控件的初学者,建议从作者的上一本书《Android自定义控件开发入门与实战》开始,读完后再来看这本书,这样你将对Android自定义控件有更深刻的理解。

目录

  • 封面
  • 作者简介
  • 版权信息
  • 内容简介
  • 前言
  • 第1章 3D特效
  • 1.1 3D特效概述
  • 1.1.1 2D坐标系与3D坐标系
  • 1.1.2 Android中的Camera类
  • 1.1.3 构造Camera类使用实例
  • 1.2 Camera类用法详解
  • 1.2.1 平移
  • 1.2.2 旋转
  • 1.2.3 改变Camera的位置
  • 1.3 实现3D卡片翻转效果
  • 1.3.1 框架搭建
  • 1.3.2 效果改进
  • 1.3.3 正背面显示不同的内容
  • 1.4 实现小米时钟的触摸倾斜效果
  • 1.4.1 框架搭建
  • 1.4.2 实现ClockViewGroup
  • 1.4.3 ClockViewGroup应用
  • 第2章 位置矩阵
  • 2.1 位置矩阵概述
  • 2.1.1 矩阵运算
  • 2.1.2 位置矩阵简介
  • 2.2 Matrix类中函数用法详解(一)
  • 2.2.1 基本函数
  • 2.2.2 前乘与后乘
  • 2.2.3 其他功能函数之缩放(Scale)
  • 2.2.4 其他功能函数之错切(Skew)
  • 2.2.5 其他功能函数之setSinCos
  • 2.3 Matrix类中函数用法详解(二)
  • 2.3.1 mapPoints
  • 2.3.2 其他map相关函数
  • 2.3.3 setPolyToPoly
  • 2.3.4 setRectToRect
  • 2.3.5 其他函数
  • 2.3.6 Matrix与Canvas
  • 2.4 折叠布局实战(一)——核心原理
  • 2.4.1 折叠原理概述
  • 2.4.2 实现完整折叠效果
  • 2.4.3 添加阴影效果
  • 2.5 折叠布局实战(二)——折叠菜单
  • 2.5.1 使用ViewGroup实现折叠效果
  • 2.5.2 实现折叠菜单
  • 第3章 派生类型的选择与实例
  • 3.1 派生类型的选择方法概述
  • 3.1.1 View类及ViewGroup类的选择
  • 3.1.2 继承自View类的处理流程
  • 3.1.3 继承自View子类的处理流程
  • 3.1.4 继承自ViewGroup类的处理流程
  • 3.1.5 继承自ViewGroup子控件类
  • 3.2 自定义EditText
  • 3.2.1 显示删除图标
  • 3.2.2 点击删除图标并清空文字
  • 3.3 实现圆角布局
  • 3.3.1 实现布局类
  • 3.3.2 使用布局类
  • 3.3.3 修复背景问题
  • 第4章 消息处理
  • 4.1 Android事件分发机制
  • 4.1.1 概述
  • 4.1.2 不包含onInterceptTouchEvent函数的ACTION_DOWN消息传递流程
  • 4.1.3 onInterceptTouchEvent函数的ACTION_DOWN消息传递流程
  • 4.1.4 关于ACTION_MOVE和ACTION_UP消息传递流程
  • 4.1.5 在ACTION_MOVE消息到来时拦截
  • 4.2 消息拦截实战——实现可拖动的方向按键
  • 4.2.1 框架搭建
  • 4.2.2 实现拖动效果
  • 4.3 坐标系
  • 4.3.1 屏幕坐标系和数学坐标系的区别
  • 4.3.2 View坐标系
  • 4.3.3 MotionEvent提供的函数
  • 4.4 详解requestDisallowInterceptTouchEvent函数
  • 4.4.1 requestDisallowInterceptTouchEvent函数概述
  • 4.4.2 尝试使用requestDisallowInterceptTouchEvent函数
  • 4.5 滑动冲突处理原理与实战
  • 4.5.1 常见的滑动冲突场景
  • 4.5.2 解决滑动冲突问题的思路
  • 4.5.3 滑动冲突解决方法
  • 4.5.4 滑动冲突实战
  • 第5章 多点触控详解
  • 5.1 多点触控基本知识
  • 5.1.1 概述
  • 5.1.2 单点触控与多点触控
  • 5.1.3 多点触控
  • 5.1.4 实例:追踪第2根手指
  • 5.1.5 多点触控与ACTION_MOVE消息
  • 5.1.6 其他获取函数
  • 5.2 拖动图片控件与多点触控
  • 5.2.1 单点触控下的拖动图片控件
  • 5.2.2 多点触控下的拖动图片控件
  • 5.3 制作双指缩放控件
  • 5.3.1 原理概述
  • 5.3.2 实现可缩放的文本控件
  • 第6章 工具类
  • 6.1 Scroller工具类
  • 6.1.1 探讨scrollTo与scrollBy函数
  • 6.1.2 Scroller概述
  • 6.1.3 改造demo
  • 6.1.4 实战:Android滑块开关
  • 6.2 ViewDragHelper类简介
  • 6.2.1 概述
  • 6.2.2 简单用法
  • 6.2.3 疑问解答
  • 6.2.4 边界判断
  • 6.2.5 onViewReleased函数
  • 6.3 实现QQ侧边栏效果
  • 6.3.1 基本功能实现
  • 6.3.2 添加手指释放时的动画
  • 6.3.3 展开侧边栏的实现原理
  • 6.3.4 实现展开侧边栏
  • 6.3.5 添加侧边栏的展开/关闭动画
  • 6.4 ViewDragHelper类源码解析
  • 6.4.1 创建ViewDragHelper实例
  • 6.4.2 消息不被子控件消费的Touch事件的处理方法
  • 6.4.3 消息被子控件消费的Touch事件的处理方法
  • 6.4.4 遗留问题解析
  • 6.5 ViewConfiguration类
  • 6.5.1 距离相关函数
  • 6.5.2 速度相关函数
  • 6.5.3 时间相关函数
  • 6.5.4 其他函数
  • 第7章 RecyclerView
  • 7.1 RecyclerView概述
  • 7.1.1 导入support-v7包
  • 7.1.2 RecyclerView的简单使用
  • 7.1.3 其他LayoutManager
  • 7.1.4 加载不同类型的View
  • 7.2 添加分割线
  • 7.2.1 引入ItemDecoration
  • 7.2.2 自定义ItemDecoration
  • 7.3 自定义LayoutManager
  • 7.3.1 初始化展示界面
  • 7.3.2 添加滑动效果
  • 7.4 RecyclerView回收复用HolderView的实现方式(一)
  • 7.4.1 RecyclerView是否会自动回收复用HolderView
  • 7.4.2 RecyclerView回收复用HolderView的原理
  • 7.4.3 给CustomLayoutManager添加回收复用HolderView功能
  • 7.5 RecyclerView回收复用HolderView的实现方式(二)
  • 7.5.1 初步实现
  • 7.5.2 继续优化:回收时的布局
  • 7.6 ItemTouchHelper
  • 7.6.1 ItemTouchHelper的基本功能实现
  • 7.6.2 真正实现滑动删除与拖曳移动
  • 7.6.3 其他功能:交互时的背景变化
  • 7.6.4 GridView中的滑动/拖动效果
  • 7.6.5 getMovementFlags中的各种flag
  • 7.6.6 禁用拖曳与指定拖曳
  • 7.6.7 onChildDraw函数
  • 7.6.8 其他函数
  • 7.6.9 布局方向
  • 第8章 RecyclerView特效实战
  • 8.1 滑动画廊控件
  • 8.1.1 实现item布局
  • 8.1.2 实现横向布局
  • 8.1.3 实现横向滑动
  • 8.1.4 实现卡片叠加
  • 8.1.5 修改卡片起始位置
  • 8.1.6 更改默认显示顺序
  • 8.1.7 添加滑动缩放功能
  • 8.1.8 bug修复
  • 8.1.9 拓展1:fling校正
  • 8.1.10 拓展2:制作3D画廊
  • 8.2 仿QQ列表滑动删除效果
  • 8.2.1 有问题的ItemTouchHelper之实现demo
  • 8.2.2 有问题的ItemTouchHelper之显示出底部操作栏
  • 8.2.3 改造ItemTouchHelper
  • 8.2.4 使用ItemTouchHelperExtension实现
  • 8.3 使用SnapHelper实现滑动对齐
  • 8.3.1 SnapHelper概述
  • 8.3.2 LinearSnapHelper的使用
  • 8.3.3 PagerSnapHelper的使用
  • 第9章 精彩自定义控件实战
  • 9.1 华为时钟
  • 9.1.1 实现原理
  • 9.1.2 实现遮罩叠加
  • 9.1.3 实现遮罩旋转
  • 9.1.4 显示时间
  • 9.1.5 封装组件
  • 9.2 圆环动画
  • 9.2.1 圆环扇形原理
  • 9.2.2 初步实现控件圆环效果
  • 9.2.3 制作多彩圆环
  • 9.2.4 实现渐显动画
  • 9.3 自定义控件与组合控件实战
  • 9.3.1 初步实现VolumeView
  • 9.3.2 实现音量动效
  • 9.3.3 组合控件
  • 第10章 Lottie动画框架
  • 10.1 Lottie概述
  • 10.1.1 Lottie是什么
  • 10.1.2 Lottie demo之基本功能
  • 10.1.3 Lottie demo之在线加载Lottie
  • 10.1.4 Lottie demo之其他功能
  • 10.1.5 Lottie社区
  • 10.1.6 Lottie动画优势
  • 10.2 Lottie与AE
  • 10.2.1 环境安装
  • 10.2.2 Lottie完整使用流程
  • 10.2.3 Lottie JSON与AE
  • 10.2.4 图片图层的使用
  • 10.2.5 文本图层的使用
  • 10.2.6 Lottie支持的AE功能列表
  • 10.3 Lottie的使用方法
  • 10.3.1 初步使用Lottie
  • 10.3.2 Lottie在代码中的使用
  • 10.4 Lottie核心原理
  • 10.4.1 概述
  • 10.4.2 初始化
  • 10.4.3 测量与布局
  • 10.4.4 绘图
  • 10.4.5 如何动起来
  • 10.4.6 疑问解答
  • 后折页
  • 封底
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。