展开全部

主编推荐语

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