内容简介 · · · · · · 本书内容上覆盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于Google Map的个人GPS、豆瓣网(Web 2.0)客户端、在线音乐播放器、手机信息助手。 本书注重对实际动手能力的指导,在遵循技术研发知识体系的严密性同时,在容易产生错误、不易理解的环节配以了详实的开发情景截图,并将重要的知识点和经验技巧以“小实验”、“小知识”的活泼形式呈现给读者。在程序实例的讲
Android自定义控件开发入门与实战
✍ Scribed by 启舰
- Publisher
- 电子工业出版社
- Year
- 2018
- Tongue
- Chinese
- Leaves
- 505
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
在Android中,官方提供的控件是非常有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少。不仅因为自定义控件涉及的知识丰富、繁杂,而且与动画和色彩相关的知识很难在纸张上表现出来。本书从自定义控件的动画、绘图、视图三方面入手,分别讲解与自定义控件相关的各种知识,给大家系统地梳理相关知识点,并且通过翔实的案例讲解每个知识点在现实工作中所能实现的功能。
✦ Table of Contents
扉页
版权页
前言
目录
开篇
第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.2 AnimatorSet.Builder
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.4 GestureDetector.SimpleOnGestureListener类
13.1.5 onFling()函数的应用——识别是向左滑还是向右滑
13.2 Window与WindowManager
13.2.1 Window与WindowManager的联系
13.2.2 示例:腾讯手机管家悬浮窗的小火箭效果
📜 SIMILAR VOLUMES
<p>《Kotlin开发快速入门与实战》主要介绍在Kotlin开发中各种相关的技术及知识,全书共分为7章,内容层次清晰,难度循序渐进。第1章介绍Kotlin编程环境的搭建、如何运行Kotlin项目,以及编辑器的安装;第2章介绍Kotlin编程语言的基础,主要内容包括变量与常量、常见的数据类型、运算符以及流程控制语句;第3章介绍集合,以及常见的集合操作;第4章介绍函数和函数的使用;第5章主要介绍面向对象基础知识和高级编程;第6章主要介绍Kotlin与Java的互操作、Kotlin与JavaScript的互操作;第7章主要介绍一个实例——电子拍卖系统,通过Kotlin编写Android客户端。 如
计算机便携化未来的发展趋势,从其诞生到现在的短短几年里,凭借其开源开放性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐。本书循序渐进地介绍了Android应用开发的相关知识,内容覆盖了Android用户界面编程,首先介绍了Android界面布局、控件、菜单、对话框等内容;然后进一步介绍Android视图与动画、Android数据存储、Android传递消息与联网、Android多媒体等内容;最后综合介绍了Android辅助工具。
本书内容系统全面,采用层层递进的方式进行讲解,让读者理解起来更为容易。全书分为10章,主要包括Android Studio的常用操作和技巧、Android的属性和布局、Android的基础控件、Android的系统组件、Android几种常用的数据存储方式、Android动画、Android网络、Android手机的基本功能及多媒体操作等。另外,本书还创新地引入了扫描二维码查看动态图的功能,让纸质图书也能和读者交互起来,提升阅读的乐趣。本书适用于广大初、中级Android开发者。对于初级开发者,本书对常用核心的基础知识通过实例的形式进行了系统的讲解,保证初学者学习后可迅速上手进行Android
<p>本书全面讲解Jupyter的功能、应用、体系架构、配置和部署等内容。全书共8章,前4章面向希望学习Python、数据科学及人工智能相关知识,但尚无软件开发基础的读者,以零起点的方式讲述Jupyter的功能与操作,并以Jupyter Notebook为工具,讲述Python的基础知识,以及使用Python开展数据科学工作的入门内容;后4章深入讲述Jupyter的高级应用、配置、管理,以及JupyterLab和JupyterHub等相关内容。本书尽量涵盖Jupyter各方面的内容,致力于成为一本Jupyter完全手册。</p> <p>本书适合Jupyter及Python初学者阅读学习,也适
<p>《实战Android应用开发》通过开发实例和项目案例,详细地介绍了Android应用开发的主要技术。书中的每一个知识点都通过常用示例进行通俗易懂的讲解,便于读者快速掌握Android应用开发的知识,并能够快速地开发出Android应用程序。《实战Android应用开发》配带1张光盘,收录了《实战Android应用开发》重点内容的教学视频和《实战Android应用开发》涉及的所有源代码。 《实战Android应用开发》分为11章,从Android的基本知识讲起,通过实例逐步深入讲解了Android的界面布局、程序特性、数据存储、网络通信、多媒体、手机短信通话、传感器和GPS等应用开发的基本