第1部分 Android用户界面基础 1
第1章 Android界面和Material Design 1
Android设计简史 2
Material Design 4
基本概念 4
交互和动画 7
字体 8
测量和对齐 9
Android设计站点 10
核心原则 10
做一件事并把它做好 10
与其他应用友好相处 12
视觉、视觉、重要的视觉 13
简单但强大 14
平台一致性 15
适应用户 16
标准组件 17
系统栏 17
通知系统 18
应用栏 19
Tab和侧边式抽屉导航 20
FAB 20
支持多种设备 21
避免让人痛苦的错误 22
菜单键 22
长按 22
通知图标 22
来自其他平台的样式 23
小结 23
第2章 理解view——用户界面的构架模块 25
什么是view 26
View ID 28
理解view尺寸 29
显示文本 33
显示图片 38
背景 38
聚集用户输入的view 40
其他值得关注的view 44
事件的监听 47
其他监听器 48
小结 48
第3章 用ViewGroup与Fragment创建全布局 49
理解ViewGroup以及常见的实现方式 50
其他值得关注的ViewGroup 61
用Fragment封装view逻辑 63
Fragment的生命周期 64
给予Fragment数据 65
与Activity进行通讯 66
执行Fragment的事务 69
争议 70
支持库 70
CardView库 72
Design库 72
GridLayout库 73
Leanback库 73
MediaRouter库 73
Palette库 73
RecyclerView库 73
注解支持库 74
小结 74
第4章 添加应用的图形和资源 75
Android中资源的介绍 76
资源限定符 76
理解密度 81
可支持的图片文件 82
栅格图片 83
矢量图片 84
9-patch图片 84
XML可绘制对象 86
Layer List 87
State List 88
Level List 91
其他资源 101
Strings 102
数组(Array) 103
颜色(Color) 104
尺寸(Dimension) 105
动画(Animation) 105
ID 105
菜单 106
小结 107
第2部分 完整的设计和开发过程 109
第5章 开始一个新的应用 109
设计方法 110
常用方法 110
以用户为中心的设计 110
确定目标 113
用户目标 114
用户模型 115
产品目标 116
设备和配置支持 116
概要流程图 117
线框图 120
从导航开始 123
接着进入内容模块 126
详情页面的线框图 128
支持多种设备 130
命名惯例 130
原始资源 132
小结 133
第6章 原型和开发应用基础 135
组织为Activity和Fragment 136
创建第1个原型 137
Tab 138
抽屉导航(Navigation Drawer) 140
Tool展示 143
Tab Fragment 149
Tool Details 163
评估第1个原型 168
与用户一起工作 169
完全开放 169
明确目标 170
动态目标 170
真实的用户反馈 170
下一步 173
小结 174
第7章 设计视觉效果 175
线框和图形设计 176
工具 176
风格 177
拟物设计 177
极简设计 178
扁平化设计 178
Material Design 179
光源 179
颜色 180
相关科学 180
选择颜色 183
木工应用 187
文本注意事项 187
文本对比 188
文本尺寸、样式和大写 189
文本间距 189
文本阴影 190
自定义字体 190
易懂的用语 192
其他注意事项 192
变化的文本长度 192
图片的有效性和尺寸 193
透明度和3×规则 193
标准图标 194
导航和过渡 194
错误情况 194
设计步骤 195
小结 199
第8章 实现设计方案 201
和设计师一起工作 202
切出图形资产 203
简单切图 203
9-patch图片 205
生成可替代尺寸 208
主题和样式 209
把comp拆分为多个view 210
开发木工应用 211
主屏幕 212
工具列表 222
工具详情 236
多种设备上的基本测试 240
小结 241
第9章 用动画出彩 243
动画的目的 244
view动画(View Animation) 244
属性动画(Property Animation) 245
控制ProperAnimation 247
监听器 247
类型Evaluator 248
Time Interpolator 251
关键帧 253
ViewProperryAnimator 254
错误提示动画 254
动画图标 259
制作矢量图标动画 259
动画化栅格图标 264
简单的转场 265
屏幕转场 266
Activity转场 270
圆形显现过渡 274
小结 277
第3部分 Android用户界面的高级应用篇 279
第10章 使用高级技巧 279
识别Jank 280
用Systrace理解Jank 281
优化图片 288
压缩图片 288
正确使用图片的大小 290
使用图片缓存 294
额外的性能提高 300
控制垃圾回收 300
View Holder模式 301
消除过度绘制 304
Hierarchy Viewer 307
找到丢失的view 310
消除不必要的view 310
导出为PSD文件 310
自定义字体 311
复杂的TextView 314
存在的Span 314
复杂文本的Span使用 316
RecyclerView 318
布局管理器 319
适配器 319
条目Animator 320
条目装饰 320
小结 320
第11章 处理Canvas和高级绘制 323
创作自定义Drawable 324
基本概念 324
其他的重要方法 325
Paint 325
Canvas 326
处理文本 326
一个简单的文本Drawable 326
更好的Text Drawable 329
处理图片 331
色彩过滤器 334
Lighting Color Filter 334
色彩矩阵 335
PorterDuff图片合成 336
着色器 347
圆形图片 347
渐变淡化 350
小结 353
第12章 开发自定义view 355
基本概念 356
测量 356
布局 357
绘制 358
保存和恢复状态 358
创建一个自定义View 359
测量 361
处理布局Layout 362
建立Bitmap 363
保存和恢复状态 365
小结 373
第13章 处理输入和滚动 375
触碰输入 376
其他形式的输入 377
创建一个自定义View 378
创建初始自定义View文件 378
测量 384
绘制 388
准备触碰输入 393
处理触碰输入 397
其他注意事项 414
小结 415
附录A Google Play资源文件 417
附录B 常用任务参考 433