《Android自定义控件开发入门与实战》[90M]百度网盘|pdf下载|亲测有效
《Android自定义控件开发入门与实战》[90M]百度网盘|pdf下载|亲测有效

Android自定义控件开发入门与实战 pdf下载

出版社 博道图书专营店
出版年 2018-07
页数 390页
装帧 精装
评分 9.0(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供Android自定义控件开发入门与实战电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

基本信息

  • 商品名称:Android自定义控件开发入门与实战
  • 作者:启舰
  • 定价:99
  • 出版社:电子工业
  • 书号:9787121345562

其他参考信息(以实物为准)

  • 出版时间:2018-07-01
  • 印刷时间:2018-07-01
  • 版次:1
  • 印次:1
  • 开本:16开
  • 包装:平装
  • 页数:490
  • 字数:806千字

编辑推荐语

1 本书从动画、绘图、视图三方面介绍Android自定义控件相关知识,内容系统全面,并配以翔实的案例。 2 Android自定义控件涉及动画和色彩,本书将图片地址制作成二维码,可供读者扫描观看。 3 本书适合初 水平从业者系统学习,也适合 水平从业者查漏补缺。

内容提要

在Android中,官方提供的控件是 有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少。不仅因为自定义控件涉及的知识丰富、繁杂,而且与动画和色彩相关的知识很难在纸张上表现出来。本书从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能。在Android中,官方提供的控件是 有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少。不仅因为自定义控件涉及的知识丰富、繁杂,而且与动画和色彩相关的知识很难在纸张上表现出来。本书从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能。在Android中,官方提供的控件是 有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少。不仅因为自定义控件涉及的知识丰富、繁杂,而且与动画和色彩相关的知识很难在纸张上表现出来。本书从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能。

目录

开 篇
第1章 绘图基础2
1.1 基本图形绘制2
1.1.1 概述2
1.1.2 画笔的基本设置4
1.1.3 Canvas使用基础6
1.1.4 Color10
1.2 路径11
1.2.1 概述11
1.2.2 直线路径12
1.2.3 弧线路径12
1.3 Region14
1.3.1 构造Region14
1.3.2 区域相交16
1.4 Canvas(画布)19
1.4.1 Canvas变换19
1.4.2 画布的保存与恢复23
动 画 篇
第2章 视图动画26
2.1 视图动画标签26
2.1.1 概述26
2.1.2 scale标签28
2.1.3 alpha标签34
2.1.4 rotate标签35
2.1.5 translate标签36
2.1.6 set标签37
2.2 视图动画的代码实现38
2.2.1 概述38
2.2.2 ScaleAnimation38
2.2.3 AlphaAnimation40
2.2.4 RotateAnimation40
2.2.5 TranslateAnimation41
2.2.6 AnimationSet42
2.2.7 Animation43
2.3 插值器初探44
2.3.1 AccelerateDecelerateInterpolator45
2.3.2 AccelerateInterpolator47
2.3.3 DecelerateInterpolator48
2.3.4 LinearInterpolator49
2.3.5 BounceInterpolator49
2.3.6 AnticipateInterpolator50
2.3.7 OvershootInterpolator51
2.3.8 AnticipateOvershootInterpolator53
2.3.9 CycleInterpolator54
2.4 动画示例55
2.4.1 镜头由远及近效果55
2.4.2 加载框效果56
2.4.3 扫描动画57
2.5 逐帧动画60
2.5.1 XML实现61
2.5.2 代码实现66
第3章 属性动画68
3.1 ValueAnimator的基本使用68
3.1.1 概述68
3.1.2 ValueAnimator的简单使用71
3.1.3 常用函数74
3.1.4 示例:弹跳加载中效果83
3.2 自定义插值器与Evaluator86
3.2.1 自定义插值器87
3.2.2 Evaluator90
3.3 ValueAnimator进阶——ofObject96
3.3.1 概述96
3.3.2 示例:抛物动画98
3.4 ObjectAnimator101
3.4.1 概述101
3.4.2 ObjectAnim开 篇
第1章 绘图基础2
1.1 基本图形绘制2
1.1.1 概述2
1.1.2 画笔的基本设置4
1.1.3 Canvas使用基础6
1.1.4 Color10
1.2 路径11
1.2.1 概述11
1.2.2 直线路径12
1.2.3 弧线路径12
1.3 Region14
1.3.1 构造Region14
1.3.2 区域相交16
1.4 Canvas(画布)19
1.4.1 Canvas变换19
1.4.2 画布的保存与恢复23
动 画 篇
第2章 视图动画26
2.1 视图动画标签26
2.1.1 概述26
2.1.2 scale标签28
2.1.3 alpha标签34
2.1.4 rotate标签35
2.1.5 translate标签36
2.1.6 set标签37
2.2 视图动画的代码实现38
2.2.1 概述38
2.2.2 ScaleAnimation38
2.2.3 AlphaAnimation40
2.2.4 RotateAnimation40
2.2.5 TranslateAnimation41
2.2.6 AnimationSet42
2.2.7 Animation43
2.3 插值器初探44
2.3.1 AccelerateDecelerateInterpolator45
2.3.2 AccelerateInterpolator47
2.3.3 DecelerateInterpolator48
2.3.4 LinearInterpolator49
2.3.5 BounceInterpolator49
2.3.6 AnticipateInterpolator50
2.3.7 OvershootInterpolator51
2.3.8 AnticipateOvershootInterpolator53
2.3.9 CycleInterpolator54
2.4 动画示例55
2.4.1 镜头由远及近效果55
2.4.2 加载框效果56
2.4.3 扫描动画57
2.5 逐帧动画60
2.5.1 XML实现61
2.5.2 代码实现66
第3章 属性动画68
3.1 ValueAnimator的基本使用68
3.1.1 概述68
3.1.2 ValueAnimator的简单使用71
3.1.3 常用函数74
3.1.4 示例:弹跳加载中效果83
3.2 自定义插值器与Evaluator86
3.2.1 自定义插值器87
3.2.2 Evaluator90
3.3 ValueAnimator进阶——ofObject96
3.3.1 概述96
3.3.2 示例:抛物动画98
3.4 ObjectAnimator101
3.4.1 概述101
3.4.2 ObjectAnim开 篇
第1章 绘图基础2
1.1 基本图形绘制2
1.1.1 概述2
1.1.2 画笔的基本设置4
1.1.3 Canvas使用基础6
1.1.4 Color10
1.2 路径11
1.2.1 概述11
1.2.2 直线路径12
1.2.3 弧线路径12
1.3 Region14
1.3.1 构造Region14
1.3.2 区域相交16
1.4 Canvas(画布)19
1.4.1 Canvas变换19
1.4.2 画布的保存与恢复23
动 画 篇
第2章 视图动画26
2.1 视图动画标签26
2.1.1 概述26
2.1.2 scale标签28
2.1.3 alpha标签34
2.1.4 rotate标签35
2.1.5 translate标签36
2.1.6 set标签37
2.2 视图动画的代码实现38
2.2.1 概述38
2.2.2 ScaleAnimation38
2.2.3 AlphaAnimation40
2.2.4 RotateAnimation40
2.2.5 TranslateAnimation41
2.2.6 AnimationSet42
2.2.7 Animation43
2.3 插值器初探44
2.3.1 AccelerateDecelerateInterpolator45
2.3.2 AccelerateInterpolator47
2.3.3 DecelerateInterpolator48
2.3.4 LinearInterpolator49
2.3.5 BounceInterpolator49
2.3.6 AnticipateInterpolator50
2.3.7 OvershootInterpolator51
2.3.8 AnticipateOvershootInterpolator53
2.3.9 CycleInterpolator54
2.4 动画示例55
2.4.1 镜头由远及近效果55
2.4.2 加载框效果56
2.4.3 扫描动画57
2.5 逐帧动画60
2.5.1 XML实现61
2.5.2 代码实现66
第3章 属性动画68
3.1 ValueAnimator的基本使用68
3.1.1 概述68
3.1.2 ValueAnimator的简单使用71
3.1.3 常用函数74
3.1.4 示例:弹跳加载中效果83
3.2 自定义插值器与Evaluator86
3.2.1 自定义插值器87
3.2.2 Evaluator90
3.3 ValueAnimator进阶——ofObject96
3.3.1 概述96
3.3.2 示例:抛物动画98
3.4 ObjectAnimator101
3.4.1 概述101
3.4.2 ObjectAnimator动画原理106
3.4.3 自定义ObjectAnimator属性107
3.4.4 何时需要实现对应属性的get函数110
3.4.5 常用函数112
3.5 组合动画——AnimatorSet113
3.5.1 playSequentially()与playTogether()函数113
3.5.2 AnimatorSet.Builder118
3.5.3 AnimatorSet监听器119
3.5.4 常用函数122
3.5.5 示例:路径动画126
3.6 Animator动画的XML实现132
3.6.1 animator标签132
3.6.2 objectAnimator标签134
第4章 属性动画进阶136
4.1 PropertyValuesHolder与Keyframe136
4.1.1 PropertyValuesHolder137
4.1.2 Keyframe140
4.1.3 PropertyValuesHolder之其他函数148
4.1.4 示例:电话响铃效果148
4.2 ViewPropertyAnimator150
4.2.1 概述150
4.2.2 常用函数150
4.2.3 性能考量153
4.3 为ViewGroup内的组件添加动画153
4.3.1 animateLayoutChanges属性154
4.3.2 LayoutTransition157
4.3.3 其他函数161
4.4 开源动画库NineOldAndroids163
4.4.1 NineOldAndroids中的ViewPropertyAnimator164
4.4.2 NineOldAndroids中的ViewHelper164
第5章 动画进阶168
5.1 利用PathMeasure实现路径动画168
5.1.1 初始化168
5.1.2 简单函数使用169
5.1.3 getSegment()函数171
5.1.4 getPosTan()函数177
5.1.5 getMatrix()函数181
5.1.6 示例: 支付成功动画182
5.2 SVG动画184
5.2.1 概述184
5.2.2 vector标签与图像显示186
5.2.3 动态Vector197
5.2.4 示例:输入搜索动画198
绘 图 篇
第6章 Paint基本使用204
6.1 硬件加速204
6.1.1 概述204
6.1.2 软件绘制与硬件加速的区别204
6.1.3 禁用GPU硬件加速的方法206
6.2 文字207
6.2.1 概述207
6.2.2 绘图四线格与FontMetrics210
6.2.3 常用函数214
6.2.4 示例:定点写字216
6.3 Paint常用函数218
6.3.1 基本设置函数218
6.3.2 ator动画原理106
3.4.3 自定义ObjectAnimator属性107
3.4.4 何时需要实现对应属性的get函数110
3.4.5 常用函数112
3.5 组合动画——AnimatorSet113
3.5.1 playSequentially()与playTogether()函数113
3.5.2 AnimatorSet.Builder118
3.5.3 AnimatorSet监听器119
3.5.4 常用函数122
3.5.5 示例:路径动画126
3.6 Animator动画的XML实现132
3.6.1 animator标签132
3.6.2 objectAnimator标签134
第4章 属性动画进阶136
4.1 PropertyValuesHolder与Keyframe136
4.1.1 PropertyValuesHolder137
4.1.2 Keyframe140
4.1.3 PropertyValuesHolder之其他函数148
4.1.4 示例:电话响铃效果148
4.2 ViewPropertyAnimator150
4.2.1 概述150
4.2.2 常用函数150
4.2.3 性能考量153
4.3 为ViewGroup内的组件添加动画153
4.3.1 animateLayoutChanges属性154
4.3.2 LayoutTransition157
4.3.3 其他函数161
4.4 开源动画库NineOldAndroids163
4.4.1 NineOldAndroids中的ViewPropertyAnimator164
4.4.2 NineOldAndroids中的ViewHelper164
第5章 动画进阶168
5.1 利用PathMeasure实现路径动画168
5.1.1 初始化168
5.1.2 简单函数使用169
5.1.3 getSegment()函数171
5.1.4 getPosTan()函数177
5.1.5 getMatrix()函数181
5.1.6 示例: 支付成功动画182
5.2 SVG动画184
5.2.1 概述184
5.2.2 vector标签与图像显示186
5.2.3 动态Vector197
5.2.4 示例:输入搜索动画198
绘 图 篇
第6章 Paint基本使用204
6.1 硬件加速204
6.1.1 概述204
6.1.2 软件绘制与硬件加速的区别204
6.1.3 禁用GPU硬件加速的方法206
6.2 文字207
6.2.1 概述207
6.2.2 绘图四线格与FontMetrics210
6.2.3 常用函数214
6.2.4 示例:定点写字216
6.3 Paint常用函数218
6.3.1 基本设置函数218
6.3.2 ator动画原理106
3.4.3 自定义ObjectAnimator属性107
3.4.4 何时需要实现对应属性的get函数110
3.4.5 常用函数112
3.5 组合动画——AnimatorSet113
3.5.1 playSequentially()与playTogether()函数113
3.5.2 AnimatorSet.Builder118
3.5.3 AnimatorSet监听器119
3.5.4 常用函数122
3.5.5 示例:路径动画126
3.6 Animator动画的XML实现132
3.6.1 animator标签132
3.6.2 objectAnimator标签134
第4章 属性动画进阶136
4.1 PropertyValuesHolder与Keyframe136
4.1.1 PropertyValuesHolder137
4.1.2 Keyframe140
4.1.3 PropertyValuesHolder之其他函数148
4.1.4 示例:电话响铃效果148
4.2 ViewPropertyAnimator150
4.2.1 概述150
4.2.2 常用函数150
4.2.3 性能考量153
4.3 为ViewGroup内的组件添加动画153
4.3.1 animateLayoutChanges属性154
4.3.2 LayoutTransition157
4.3.3 其他函数161
4.4 开源动画库NineOldAndroids163
4.4.1 NineOldAndroids中的ViewPropertyAnimator164
4.4.2 NineOldAndroids中的ViewHelper164
第5章 动画进阶168
5.1 利用PathMeasure实现路径动画168
5.1.1 初始化168
5.1.2 简单函数使用169
5.1.3 getSegment()函数171
5.1.4 getPosTan()函数177
5.1.5 getMatrix()函数181
5.1.6 示例: 支付成功动画182
5.2 SVG动画184
5.2.1 概述184
5.2.2 vector标签与图像显示186
5.2.3 动态Vector197
5.2.4 示例:输入搜索动画198
绘 图 篇
第6章 Paint基本使用204
6.1 硬件加速204
6.1.1 概述204
6.1.2 软件绘制与硬件加速的区别204
6.1.3 禁用GPU硬件加速的方法206
6.2 文字207
6.2.1 概述207
6.2.2 绘图四线格与FontMetrics210
6.2.3 常用函数214
6.2.4 示例:定点写字216
6.3 Paint常用函数218
6.3.1 基本设置函数218
6.3.2 字体相关函数221
第7章 绘图进阶223
7.1 贝济埃曲线223
7.1.1 概述223
7.1.2 贝济埃曲线之quadTo227
7.1.3 贝济埃曲线之rQuadTo234
7.1.4 示例:波浪效果235
7.2 setShadowLayer与阴影效果238
7.2.1 setShadowLayer()构造函数238
7.2.2 清除阴影240
7.2.3 示例:给文字添加阴影242
7.3 BlurMaskFilter发光效果与图片阴影243
7.3.1 概述243
7.3.2 给图片添加纯色阴影245
7.4 Shader与BitmapShader248
7.4.1 Shader概述248
7.4.2 BitmapShader的基本用法249
7.4.3 示例一:望远镜效果254
7.4.4 示例二:生成不规则头像256
7.5 Shader之LinearGradient257
7.5.1 概述257
7.5.2 示例:闪光文字效果261
7.6 Shader之RadialGradient264
7.6.1 双色渐变264
7.6.2 多色渐变266
7.6.3 TileMode填充模式267
第8章 混合模式269
8.1 混合模式之AvoidXfermode269
8.1.1 混合模式概述269
8.1.2 AvoidXfermode270
8.1.3 AvoidXfermode绘制原理274
8.1.4 AvoidXfermode之Mode.AVOID275
8.2 混合模式之PorterDuffXfermode276
8.2.1 PorterDuffXfermode概述276
8.2.2 颜色叠加相关模式279
8.3 PorterDuffXfermode之源图像模式285
8.3.1 Mode.SRC285
8.3.2 Mode.SRC_IN285
8.3.3 Mode.SRC_OUT288
8.3.4 Mode.SRC_OVER293
8.3.5 Mode.SRC_ATOP293
8.4 目标图像模式与其他模式294
8.4.1 目标图像模式294
8.4.2 其他模式——Mode.CLEAR303
8.4.3 模式总结303
第9章 Canvas与图层305
9.1 获取Canvas对象的方法305
9.1.1 方法一:重写onDraw()、dispatchDraw()函数305
9.1.2 方法二:使用Bitmap创建306
9.1.3 方法三:调用SurfaceHolder.lockCanvas()函数307
9.2 图层与画布307
9.2.1 saveLayer()函数307
9.2.2 画布与图层312
9.2.3 saveLayer()和saveLayerAlpha()函数的用法312
9.3 Fl 字体相关函数221
第7章 绘图进阶223
7.1 贝济埃曲线223
7.1.1 概述223
7.1.2 贝济埃曲线之quadTo227
7.1.3 贝济埃曲线之rQuadTo234
7.1.4 示例:波浪效果235
7.2 setShadowLayer与阴影效果238
7.2.1 setShadowLayer()构造函数238
7.2.2 清除阴影240
7.2.3 示例:给文字添加阴影242
7.3 BlurMaskFilter发光效果与图片阴影243
7.3.1 概述243
7.3.2 给图片添加纯色阴影245
7.4 Shader与BitmapShader248
7.4.1 Shader概述248
7.4.2 BitmapShader的基本用法249
7.4.3 示例一:望远镜效果254
7.4.4 示例二:生成不规则头像256
7.5 Shader之LinearGradient257
7.5.1 概述257
7.5.2 示例:闪光文字效果261
7.6 Shader之RadialGradient264
7.6.1 双色渐变264
7.6.2 多色渐变266
7.6.3 TileMode填充模式267
第8章 混合模式269
8.1 混合模式之AvoidXfermode269
8.1.1 混合模式概述269
8.1.2 AvoidXfermode270
8.1.3 AvoidXfermode绘制原理274
8.1.4 AvoidXfermode之Mode.AVOID275
8.2 混合模式之PorterDuffXfermode276
8.2.1 PorterDuffXfermode概述276
8.2.2 颜色叠加相关模式279
8.3 PorterDuffXfermode之源图像模式285
8.3.1 Mode.SRC285
8.3.2 Mode.SRC_IN285
8.3.3 Mode.SRC_OUT288
8.3.4 Mode.SRC_OVER293
8.3.5 Mode.SRC_ATOP293
8.4 目标图像模式与其他模式294
8.4.1 目标图像模式294
8.4.2 其他模式——Mode.CLEAR303
8.4.3 模式总结303
第9章 Canvas与图层305
9.1 获取Canvas对象的方法305
9.1.1 方法一:重写onDraw()、dispatchDraw()函数305
9.1.2 方法二:使用Bitmap创建306
9.1.3 方法三:调用SurfaceHolder.lockCanvas()函数307
9.2 图层与画布307
9.2.1 saveLayer()函数307
9.2.2 画布与图层312
9.2.3 saveLayer()和saveLayerAlpha()函数的用法312
9.3 Fl 字体相关函数221
第7章 绘图进阶223
7.1 贝济埃曲线223
7.1.1 概述223
7.1.2 贝济埃曲线之quadTo227
7.1.3 贝济埃曲线之rQuadTo234
7.1.4 示例:波浪效果235
7.2 setShadowLayer与阴影效果238
7.2.1 setShadowLayer()构造函数238
7.2.2 清除阴影240
7.2.3 示例:给文字添加阴影242
7.3 BlurMaskFilter发光效果与图片阴影243
7.3.1 概述243
7.3.2 给图片添加纯色阴影245
7.4 Shader与BitmapShader248
7.4.1 Shader概述248
7.4.2 BitmapShader的基本用法249
7.4.3 示例一:望远镜效果254
7.4.4 示例二:生成不规则头像256
7.5 Shader之LinearGradient257
7.5.1 概述257
7.5.2 示例:闪光文字效果261
7.6 Shader之RadialGradient264
7.6.1 双色渐变264
7.6.2 多色渐变266
7.6.3 TileMode填充模式267
第8章 混合模式269
8.1 混合模式之AvoidXfermode269
8.1.1 混合模式概述269
8.1.2 AvoidXfermode270
8.1.3 AvoidXfermode绘制原理274
8.1.4 AvoidXfermode之Mode.AVOID275
8.2 混合模式之PorterDuffXfermode276
8.2.1 PorterDuffXfermode概述276
8.2.2 颜色叠加相关模式279
8.3 PorterDuffXfermode之源图像模式285
8.3.1 Mode.SRC285
8.3.2 Mode.SRC_IN285
8.3.3 Mode.SRC_OUT288
8.3.4 Mode.SRC_OVER293
8.3.5 Mode.SRC_ATOP293
8.4 目标图像模式与其他模式294
8.4.1 目标图像模式294
8.4.2 其他模式——Mode.CLEAR303
8.4.3 模式总结303
第9章 Canvas与图层305
9.1 获取Canvas对象的方法305
9.1.1 方法一:重写onDraw()、dispatchDraw()函数305
9.1.2 方法二:使用Bitmap创建306
9.1.3 方法三:调用SurfaceHolder.lockCanvas()函数307
9.2 图层与画布307
9.2.1 saveLayer()函数307
9.2.2 画布与图层312
9.2.3 saveLayer()和saveLayerAlpha()函数的用法312
9.3 Flag的具体含义316
9.3.1 Flag之MATRIX_SAVE_FLAG316
9.3.2 Flag之CLIP_SAVE_FLAG318
9.3.3 Flag之FULL_COLOR_LAYER_SAVE_FLAG和HAS_ALPHA_
LAYER_SAVE_FLAG320
9.3.4 Flag之CLIP_TO_LAYER_SAVE_FLAG323
9.3.5 Flag的具体含义316
9.3.1 Flag之MATRIX_SAVE_FLAG316
9.3.2 Flag之CLIP_SAVE_FLAG318
9.3.3 Flag之FULL_COLOR_LAYER_SAVE_FLAG和HAS_ALPHA_
LAYER_SAVE_FLAG320
9.3.4 Flag之CLIP_TO_LAYER_SAVE_FLAG323
9.3.5 Flag的具体含义316
9.3.1 Flag之MATRIX_SAVE_FLAG316
9.3.2 Flag之CLIP_SAVE_FLAG318
9.3.3 Flag之FULL_COLOR_LAYER_SAVE_FLAG和HAS_ALPHA_
LAYER_SAVE_FLAG320
9.3.4 Flag之CLIP_TO_LAYER_SAVE_FLAG323
9.3.5 Fl