豆瓣高分
类型
9.6
豆瓣评分
可以朗读
语音朗读
248千字
字数
2018-07-01
发行日期
展开全部
主编推荐语
Android自定义控件知识覆盖动画、绘图、视图,本书系统梳理案例讲解。
内容简介
在Android中,官方提供的控件是非常有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少。不仅因为自定义控件涉及的知识丰富、繁杂,而且与动画和色彩相关的知识很难在纸张上表现出来。 本书从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能。
目录
- 封面
- 作者简介
- 版权页
- 前言
- 目录
- 开篇
- 第1章 绘图基础
- 1.1 基本图形绘制
- 1.1.1 概述
- 1.1.2 画笔的基本设置
- 1.1.3 Canvas使用基础
- 1.1.4 Color
- 1.2 路径
- 1.2.1 概述
- 1.2.2 直线路径
- 1.2.3 弧线路径
- 1.3 Region
- 1.3.1 构造Region
- 1.3.2 区域相交
- 1.4 Canvas(画布)
- 1.4.1 Canvas变换
- 1.4.2 画布的保存与恢复
- 动画篇
- 第2章 视图动画
- 2.1 视图动画标签
- 2.1.1 概述
- 2.1.2 scale标签
- 2.1.3 alpha标签
- 2.1.4 rotate标签
- 2.1.5 translate标签
- 2.1.6 set标签
- 2.2 视图动画的代码实现
- 2.2.1 概述
- 2.2.2 ScaleAnimation
- 2.2.3 AlphaAnimation
- 2.2.4 RotateAnimation
- 2.2.5 TranslateAnimation
- 2.2.6 AnimationSet
- 2.2.7 Animation
- 2.3 插值器初探
- 2.3.1 AccelerateDecelerateInterpolator
- 2.3.2 AccelerateInterpolator
- 2.3.3 DecelerateInterpolator
- 2.3.4 LinearInterpolator
- 2.3.5 BounceInterpolator
- 2.3.6 AnticipateInterpolator
- 2.3.7 OvershootInterpolator
- 2.3.8 AnticipateOvershootInterpolator
- 2.3.9 CycleInterpolator
- 2.4 动画示例
- 2.4.1 镜头由远及近效果
- 2.4.2 加载框效果
- 2.4.3 扫描动画
- 2.5 逐帧动画
- 2.5.1 XML实现
- 2.5.2 代码实现
- 第3章 属性动画
- 3.1 ValueAnimator的基本使用
- 3.1.1 概述
- 3.1.2 ValueAnimator的简单使用
- 3.1.3 常用函数
- 3.1.4 示例:弹跳加载中效果
- 3.2 自定义插值器与Evaluator
- 3.2.1 自定义插值器
- 3.2.2 Evaluator
- 3.3 ValueAnimator进阶——ofObject
- 3.3.1 概述
- 3.3.2 示例:抛物动画
- 3.4 ObjectAnimator
- 3.4.1 概述
- 3.4.2 ObjectAnimator动画原理
- 3.4.3 自定义ObjectAnimator属性
- 3.4.4 何时需要实现对应属性的get函数
- 3.4.5 常用函数
- 3.5 组合动画——AnimatorSet
- 3.5.1 playSequentially()与playTogether()函数
- 3.5.3 AnimatorSet监听器
- 3.5.4 常用函数
- 3.5.5 示例:路径动画
- 3.6 Animator动画的XML实现
- 3.6.1 animator标签
- 3.6.2 objectAnimator标签
- 第4章 属性动画进阶
- 4.1 PropertyValuesHolder与Keyframe
- 4.1.1 PropertyValuesHolder
- 4.1.2 Keyframe
- 4.1.3 PropertyValuesHolder之其他函数
- 4.1.4 示例:电话响铃效果
- 4.2 ViewPropertyAnimator
- 4.2.1 概述
- 4.2.2 常用函数
- 4.2.3 性能考量
- 4.3 为ViewGroup内的组件添加动画
- 4.3.1 animateLayoutChanges属性
- 4.3.2 LayoutTransition
- 4.3.3 其他函数
- 4.4 开源动画库NineOldAndroids
- 4.4.1 NineOldAndroids中的ViewPropertyAnimator
- 4.4.2 NineOldAndroids中的ViewHelper
- 第5章 动画进阶
- 5.1 利用PathMeasure实现路径动画
- 5.1.1 初始化
- 5.1.2 简单函数使用
- 5.1.3 getSegment()函数
- 5.1.4 getPosTan()函数
- 5.1.5 getMatrix()函数
- 5.1.6 示例:支付宝支付成功动画
- 5.2 SVG动画
- 5.2.1 概述
- 5.2.2 vector标签与图像显示
- 5.2.3 动态Vector
- 5.2.4 示例:输入搜索动画
- 绘图篇
- 第6章 Paint基本使用
- 6.1 硬件加速
- 6.1.1 概述
- 6.1.2 软件绘制与硬件加速的区别
- 6.1.3 禁用GPU硬件加速的方法
- 6.2 文字
- 6.2.1 概述
- 6.2.2 绘图四线格与FontMetrics
- 6.2.3 常用函数
- 6.2.4 示例:定点写字
- 6.3 Paint常用函数
- 6.3.1 基本设置函数
- 6.3.2 字体相关函数
- 第7章 绘图进阶
- 7.1 贝济埃曲线
- 7.1.1 概述
- 7.1.2 贝济埃曲线之quadTo
- 7.1.3 贝济埃曲线之rQuadTo
- 7.1.4 示例:波浪效果
- 7.2 setShadowLayer与阴影效果
- 7.2.1 setShadowLayer()构造函数
- 7.2.2 清除阴影
- 7.2.3 示例:给文字添加阴影
- 7.3 BlurMaskFilter发光效果与图片阴影
- 7.3.1 概述
- 7.3.2 给图片添加纯色阴影
- 7.4 Shader与BitmapShader
- 7.4.1 Shader概述
- 7.4.2 BitmapShader的基本用法
- 7.4.3 示例一:望远镜效果
- 7.4.4 示例二:生成不规则头像
- 7.5 Shader之LinearGradient
- 7.5.1 概述
- 7.5.2 示例:闪光文字效果
- 7.6 Shader之RadialGradient
- 7.6.1 双色渐变
- 7.6.2 多色渐变
- 7.6.3 TileMode填充模式
- 第8章 混合模式
- 8.1 混合模式之AvoidXfermode
- 8.1.1 混合模式概述
- 8.1.2 AvoidXfermode
- 8.1.3 AvoidXfermode绘制原理
- 8.1.4 AvoidXfermode之Mode.AVOID
- 8.2 混合模式之PorterDuffXfermode
- 8.2.1 PorterDuffXfermode概述
- 8.2.2 颜色叠加相关模式
- 8.3 PorterDuffXfermode之源图像模式
- 8.3.1 Mode.SRC
- 8.3.2 Mode.SRC_IN
- 8.3.3 Mode.SRC_OUT
- 8.3.4 Mode.SRC_OVER
- 8.3.5 Mode.SRC_ATOP
- 8.4 目标图像模式与其他模式
- 8.4.1 目标图像模式
- 8.4.2 其他模式——Mode.CLEAR
- 8.4.3 模式总结
- 第9章 Canvas与图层
- 9.1 获取Canvas对象的方法
- 9.1.1 方法一:重写onDraw()、dispatchDraw()函数
- 9.1.2 方法二:使用Bitmap创建
- 9.1.3 方法三:调用SurfaceHolder.lockCanvas()函数
- 9.2 图层与画布
- 9.2.1 saveLayer()函数
- 9.2.2 画布与图层
- 9.2.3 saveLayer()和saveLayerAlpha()函数的用法
- 9.3 Flag的具体含义
- 9.3.1 Flag之MATRIX_SAVE_FLAG
- 9.3.2 Flag之CLIP_SAVE_FLAG
- 9.3.3 Flag之FULL_COLOR_LAYER_SAVE_FLAG和HAS_ALPHA_LAYER_SAVE_FLAG
- 9.3.4 Flag之CLIP_TO_LAYER_SAVE_FLAG
- 9.3.5 Flag之ALL_SAVE_FLAG
- 9.4 恢复画布
- 9.4.1 restoreToCount(int count)
- 9.4.2 restore()与restoreToCount(int count)的关系
- 第10章 Android画布
- 10.1 ShapeDrawable
- 10.1.1 shape标签与GradientDrawable
- 10.1.2 ShapeDrawable的构造函数
- 10.1.3 常用函数
- 10.1.4 自定义Drawable
- 10.1.5 Drawable与Bitmap对比
- 10.2 Bitmap
- 10.2.1 概述
- 10.2.2 创建Bitmap方法之一:BitmapFactory
- 10.2.3 BitmapFactory.Options
- 10.2.4 创建Bitmap方法之二:Bitmap静态方法
- 10.2.5 常用函数
- 10.2.6 常见问题
- 10.3 SurfaceView
- 10.3.1 概述
- 10.3.2 SurfaceView的基本用法
- 10.3.3 SurfaceView双缓冲技术
- 第11章 Matrix与坐标变换
- 视图篇
- 第12章 封装控件
- 12.1 自定义属性与自定义Style
- 12.1.1 概述
- 12.1.2 declare-styleable标签的使用方法
- 12.1.3 在XML中使用自定义的属性
- 12.1.4 在代码中获取自定义属性的值
- 12.1.5 declare-styleable标签其他属性的用法
- 12.2 测量与布局
- 12.2.1 ViewGroup绘制流程
- 12.2.2 onMeasure()函数与MeasureSpec
- 12.2.3 onLayout()函数
- 12.2.4 获取子控件margin值的方法
- 12.3 实现FlowLayout容器
- 12.3.1 XML布局
- 12.3.2 提取margin值与重写onMeasure()函数
- 第13章 控件高级属性
- 13.1 GestureDetector手势检测
- 13.1.1 概述
- 13.1.2 GestureDetector.OnGestureListener接口
- 13.1.3 GestureDetector.OnDoubleTapListener接口
- 13.1.5 onFling()函数的应用——识别是向左滑还是向右滑
- 13.2 Window与WindowManager
- 13.2.1 Window与WindowManager的联系
- 13.2.2 示例:腾讯手机管家悬浮窗的小火箭效果
- 反侵权盗版声明
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。