《精通AndroidUI设计》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)WallaceJackson著;盛青,谭春波译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302425939
  • 页数:503 页
图书介绍:本书的内容力求实用,适合从事Android应用设计和开发工作的所有人阅读。本书是为中高级从业人员编写的,但十足的新手只要使用其中介绍的设计方法,通过试验提高技能,最终也能成为Android设计专家。然而,从设计、目标和最终实现盈利的角度说,本书也可能让产品经理、项目经理、视觉设计人员、用户研究人员和商务人员受益匪浅,因为它给出了移动设计和开发中的常用词汇,也提供了解决这些问题的实用方法。

第1部分 Android UI设计的核心类介绍:开发工具、布局容器和Widgets 2

第1章 Android UI设计工具:配置Android开发系统 2

Java 6:下载并安装Android基础支持 3

Android ADT Bundle:查找并下载Android IDE 5

Android ADT Bundle:安装Android IDE 7

Android ADT Bundle:启动IDE并更新ADT 10

UI线框图工具:下载并安装Pencil 15

数字图像编辑:下载并安装GIMP 2.8.10 18

3D建模和动画:下载并安装Blender 19

数字音频编辑:下载并安装Audacity 2.0.5 21

数字视频编辑:下载并安装Lightworks 11.5 23

小结 25

第2章 Android UI布局:布局容器和ViewGroup类 26

布局容器:使用XML实现基于标签的UI设计 26

使用参数:提炼并自定义UI标签 27

Android ViewGroup:布局容器的超类 28

ViewGroup.LayoutParams:控制布局的嵌套类 29

ViewGroup.MarginLayoutParams:边距嵌套类 30

边距(Margins)和间距(Padding)参数的差别 31

让ViewGroup动起来:LayoutAnimationController 32

创建UserInterface项目和pro.android.ui包 33

新建Android应用对话框 34

新建Android应用-配置项目对话框 35

新建Android应用-配置启动图标 37

新建Android应用-创建活动对话框 38

新建Android应用-空白活动对话框 39

ViewGroup XML属性:配置RelativeLayout 39

查看XML属性:配置TextView UI Widget 43

查看间距参数:在容器内添加空白 45

AnalogClock Widget:为ViewGroup添加一个View 47

使用值目录:利用XML完成UI设计 51

小结 53

第3章 Android UI Widgets:用户界面Widgets和View类 55

Android View类:用于UI Widgets的超类 55

Android View直接子类:重要的Widgets和工具 56

使用View属性:重要参数 57

View的焦点:用户在关注哪一个UI Widget 59

View监听器:让UI Widget响应用户操作 60

UI布局创建:使用setContentView()方法 62

在RelativeLayout容器中添加Button UI Widget 63

Eclipse ADT问题标签:在ADT中调试XML错误 65

相对位置:在层级中添加UI按钮 67

字符串常量:为UI按钮添加<string>标签 69

事件处理器:使用Java代码添加OnClickListener 70

控制AnalogClock的可见性:.setVisibility()方法 74

安装并配置模拟器:测试Java代码 76

完成UI仿真设计:添加两个按钮 79

小结 84

第2部分 Android UI设计Menu类介绍:OptionsMenu、ContextMenu、PopupMenu和ActionBar 86

第4章 Android UI选项菜单:OptionsMenu类和操作栏 86

Android Menu类:菜单制作的公共接口 86

Android用户界面菜单设计:概述 87

选项菜单 88

关联菜单 88

弹出菜单 89

使用XML定义菜单:<menu>和<item>标签 89

定义菜单属性:使用子标签参数 91

选项菜单设计:使用main.xml菜单定义 92

自定义OptionsMenu:添加字符串常量 96

自定义OptionsMenu:编辑参数 97

扩展OptionsMenu:添加6个以上的MenuItems 99

GIMP数字图像设计基础:创建菜单图标 100

设置目标模拟器:运行配置对话框 105

测试OptionsMenu:使用方向切换模式 106

OptionsMenu事件处理:onOptionsItemSelected() 108

小结 116

第5章 Android UI本地菜单:ContextMenu类和PopupMenu类 117

ContextMenu概述:ContextMenu公共接口 117

ContextMenu方法:如何实现ContextMenu 118

利用onContextItemSelected()方法实现ContextMenu事件处理 120

为UserInterface应用创建ContextMenu 120

ContextMenu文本常量:使用<string>标签 122

创建onCreateContextMenu()方法并扩展ContextMenu 123

使用registerForContextMenu()注册ContextMenu 124

创建onContextItemSelected()方法处理MenuItem选项 125

Android的PopupMenu类:UI Widget本地化菜单 128

为UserInterface应用创建PopupMenu UI 129

使用XML标记定义PopupMenu MenuItem对象 129

实例化用于PopupMenu的TextView UI Widget对象 131

升级应用到支持API Level 11 132

在OnClickListener()内部实例化PopupMenu 134

在Android AVD Nexus One模拟器中测试PopupMenu 136

小结 137

第6章 Android UI操作栏:高级操作栏设计和ActionBar类 138

ActionBar组件 138

ActionBar导航模式 139

Android ActionBar类 139

为ActionBar标签创建XML基础:布局 140

为ActionBar标签创建Java基础:Fragments 144

Android的LayoutInflater类 148

使用LayoutInflater 149

clockTabListener:部署TabListener的私有类 149

FragmentTransaction类 153

使用FragmentTransaction 154

FragmentTransaction类 158

小结 171

第3部分 Android UI设计:UI布局考虑、Android操作系统设计概念和Android UI设计指南 174

第7章 Android UI设计考虑:样式、目标屏幕密度和新媒体格式 174

Android媒体格式:数字图像和数字视频 174

数字图像和数字视频的颜色术语 176

数字图像压缩:概念和术语 176

Android中的声音:数字音频编码解码和格式 178

数字音频和音效设计背后的术语 180

声音采样 181

数字视频压缩:4D概念和术语 182

定义UI屏幕外观和观感:样式简介 183

为UserInterface应用的时钟创建样式 184

使用数字图像和Alpha通道:新媒体UI 190

GIMP 2.8.1 0与Android结合:合成两张图像 194

为各种设备创建不同分辨率密度图像资源 198

小结 202

第8章 Android UI设计概念:线框图和UI布局设计模式 203

UI设计原型制作:使用Pencil 2.0.5 制作线框图 203

为Android操作系统设置Pencil的工作环境 203

使用Pencil 2.0.5 复制ActionBar UI设计 206

在ActionBar添加应用图标和标题 209

使用Pencil 2.0.5 制作横屏模式UI设计原型 212

在Pencil中重新缩放UI设计以适配横屏模式 214

Android UI设计的复杂性:考虑因素众多 215

Android UI设计基本规则:符合Android UI规范 217

Android UI屏幕导航:Android中使用的主要手势 218

高级UI导航类:导航抽屉或滑动视图 219

Android应用内导航:上一级和返回的差异 220

支持用户配置应用:设置和帮助 221

UI设计中的反馈:通知和确认 221

UI设计中的品牌策略:书写风格、字体和图标 222

UI设计模式:根据产品类型分组设备 223

UI设计模式:为什么需要不同的布局 224

UI设计的向后兼容性:Android 2.x、3.x和4.x 225

Android UI设计原则:令人兴奋、简单、个性 226

小结 227

第9章 Android UI布局规范、差异和方法 228

UI布局间距:48 DIP用户界面布局规则 228

UI布局面板:单面板和多面板布局 229

UI布局复合视图:屏幕方向改变 229

自动缩放并定位UI设计:布局常量 230

设计UI元素彼此相关:RelativeLayout(相对布局) 231

使用多个UI布局定义:资源适配 231

相同布局的多个定义:布局别名 232

Android 3.2 之前版本的资源适配:小(Small)、大(Large)和超大(XLarge) 233

Android 3.2 版本之后的资源适配:DIP屏幕尺寸 234

应用屏幕尺寸支持:利用AndroidManifest进行声明 236

创建可转换的UI设计:使用资源适配 236

AnalogClock图形:为UI设计添加按钮 237

创建多个按钮标签:添加文本串常量 239

创建多个按钮元素:使用RelativeLayout 240

创建资源适配目录和横屏布局 243

小结 248

第10章 Android UI主题设计和数字媒体概念 250

主题简介:在整个应用或Activity中采用样式 250

适用整个应用范围的主题:<application>标签 251

定制主题:创建灰色操作栏 255

定制主题:创建红色标题文本 258

适用活动范围的主题:使用<activity>标签 259

Android数字图像格式:PNG8、PNG24、PNG32、JPEG、GIF、WebP 260

数字图像分辨率:像素阵列和宽高比 261

数字图像颜色值:颜色理论和颜色深度 262

图像合成:Alpha通道和混合模式 263

使用代码表示颜色或Alpha:十六进制 264

数字图像和UI遮罩:Alpha通道UI合成 265

在设计中获得光滑的边缘:使用抗锯齿 266

数字图像优化:压缩和抖动 267

数字图像分辨率和颜色深度 267

抖动 268

Alpha通道 269

创建世界时钟图像资源:GIMP合成 270

创建金色圆环时钟:GIMP中的色相偏移 272

AnalogClock UI的Java代码实现:整理完成 273

屏幕尺寸资源适配:太空中的AnalogClock 276

小结 283

第4部分 基础Android UI设计:基本布局容器——FrameLayout、LinearLayout、RelativeLayout和GridLayout 286

第11章 Android FrameLayout类:在UI设计中使用数字视频 286

Android FrameLayout类:独立内容帧框架 286

FrameLayout.LayoutParams嵌套类:Gravity(重力) 288

Android的VideoView类:在Frame中使用数字视频 290

Android视频的生命周期:8个视频回放阶段 291

Android的MediaPlayer类:视频回放引擎 292

MediaController类:控制视频回放 293

UserInterface应用闪屏:使用FrameLayout 295

Android的URI类:在Android应用中引用数据 297

使用Uri.Parse()方法:输入VideoView数据 298

核心数字视频概念:帧、帧率或FPS 299

Android中的数字视频:MPEG4 H.2 64和WebM格式 300

数字视频压缩:码率、流、标清和高清 301

数字视频压缩:使用编码器和设置 302

创建数字视频内容:使用Terragen3软件 304

创建非压缩的AVI格式:使用VirtualDub 306

应用视频压缩:使用Sorenson Squeeze 309

编辑Squeeze Pro预设 311

使用Squeeze It!按钮压缩MPEG4文件 312

开始视频回放:测试VideoView Java代码 314

使用FrameLayout UI容器缩放视频适配屏幕宽高比 315

在Android中循环播放视频:使用OnPreparedListener() 317

Android中的流式数字视频:在URI中使用HTTP URL 319

实现媒体传输UI:使用MediaController 319

小结 322

第12章 Android LinearLayout类:水平和垂直UI设计 323

LinearLayout类:Android最常用的UI类 323

LinearLayout类:水平或垂直UI设计 323

LinearLayout中的UI元素空间:使用布局权重 324

LinearLayout.LayoutParams嵌套类:布局权重 325

ImageButton类:创建定制的按钮图形 326

Android ImageButton类:多状态图形按钮 326

ImageButton状态:Normal、Pressed、Focused和Hovered 327

创建UserInterface菜单结构:UI布局菜单 328

使用GIMP数字图像软件进行UI设计 334

创建多状态ImageButton资源:使用GIMP 2.8.1 0 334

创建多状态ImageButtons:使用<selector>标签 339

创建LinearLayout UI设计:使用<LinearLayout> 341

填充LinearLayout UI设计:编写LinearActivity 346

高级设计中的嵌套UI布局容器 348

复杂的LinearLayouts:嵌套LinearLayout容器 348

三层LinearLayouts:嵌套LinearLayouts的嵌套 350

实现LinearLayout的功能:Java事件处理 353

小结 357

第13章 Android RelativeLayout类:使用一个布局容器进行UI设计 358

RelativeLayout类:利用相对性进行UI设计 358

RelativeLayout.LayoutParams嵌套类:UI设计 359

常用布局定位参数:Above、Below和Center 360

布局对齐参数:Top、Bottom、Left、Right、Start、End 360

本地布局定位参数:toLeftOf和toRightOf 361

对齐父布局定位参数:AlignParentTop等 361

在UserInterface菜单结构中添加RelativeLayout 362

将LinearLayout设计移植到RelativeLayout设计 366

使用RelativeLayout定位标签定位UI设计 369

利用RelativeLayout对齐UI设计 371

利用锚点UI元素实现UI设计边距对齐 373

使用MarginTop参数居中显示星球名称 375

微调参数使RelativeLayout UI设计更匀称 376

小结 379

第14章 Android GridLayout类:利用网格布局进行UI设计 380

GridLayout类:利用网格进行UI设计 380

使用RowSpec和ColumnSpec参数 381

关于GridLayout定位、伸缩性、空间和重力 381

GridLayout类的可见性:利用GONE常量 382

GridLayout类的缺点:没有权重参数 383

GridLayout中的布局参数:嵌套类 384

GridLayout.LayoutParams嵌套类:布局参数 384

GridLayout.Alignment嵌套类:对齐常量 385

GridLayout.Spec嵌套类:水平或垂直Spec 386

众多GridLayout类参数:默认设置 387

在UserInterface应用中实现GridLayout 388

在UserInterface菜单结构中添加GridLayout 388

定义GridLayout:网格UI设计基础 390

加入更多星球和信息:更新strings.xml 394

在GridActivity.java中利用Java进行GridLayout UI交互 395

利用重力参数控制GridLayout定位 397

利用列合并功能增加中间TextView区域 399

添加Java代码,实现GridLayout交互 403

在网格UI中添加新媒体元素和合成效果 407

小结 409

第5部分 高级Android UI设计:高级布局容器——DrawerLayout、SlidingPane、ViewPager、PagerTitleStrip和PagerTabStrip 412

第15章 Android DrawerLayout类:在UI设计中使用UI抽屉 412

DrawerLayout类:使用可伸缩UI进行设计 412

DrawerLayout所用到的Android类 414

Android ListView:带有选项列表的UI设计 414

Android AbsListView类:虚拟列表的基础类 415

Android AdapterView类:使用基于数组的Views 416

Android适配器接口:使用基于数组的Views 416

创建UserInterface应用的DrawerLayout Activity 417

定义DrawerLayout:创建UI抽屉的XML定义 417

建立自己的DrawerActivity Java Activity子类 419

添加ListView事件处理:实现UI功能 425

为火星添加<string>常量:更多的行星信息 428

添加抽屉自动缩回:closeDrawer()方法 430

精细化DrawerActivity类中的DrawerLayout 431

修改每个ListView的ImageView和背景 435

小结 437

第16章 Android SlidingPaneLayout类:在UI设计中使用滑动面板 439

SlidingPaneLayout类:跨设备类型的UI设计 439

SlidingPaneLayout类的层级结构 440

SlidingPaneLayout类适用的最佳UI设计 440

在SlidingPaneLayout中使用权重参数 441

探索3个SlidingPaneLayout嵌套类 442

在UserInterface应用中添加SlidingPaneLayout 442

定义SlidingPaneLayout:SlidingPane UI的XML代码 443

创建火星ImageButton:利用GIMP和XML 444

完成行星UI面板定义:添加4个ImageButtons 446

定义行星信息面板:添加5个TextViews 447

创建加载UI的SlidingPaneActivity子类 448

在Android Manifest中添加SlidingPaneActivity类 449

微调SlidingPaneLayout UI设计布局宽度 451

在SlidingPaneLayout UI设计中合成图像 452

在SlidingPaneLayout UI设计中使用多个图像 452

利用Java实现SlidingPaneLayout设计交互 454

使用不同模拟器测试SlidingPaneLayout 459

小结 462

第17章 Android ViewPager类:利用ViewPager实现水平导航 463

ViewPager类:水平滑动屏幕UI设计 464

ViewPager.LayoutParams嵌套类:布局属性 465

PagerAdapter类:管理ViewPages数组 466

PagerAdapter方法:实现PagerAdapter的覆盖方法 466

利用关键对象进行ViewPager索引 467

定义分页布局:使用XML编写多面板UI 469

为MainActivity菜单添加ViewPagingActivity类 470

配置AndroidManifest.xml 472

完成定义行星UI面板:添加4个ImageButtons 472

创建ViewPagingActivity类滑动太空图像 474

为ViewPagingActivity添加ViewPagerAdapter类 476

添加getCount()方法 476

添加.instantiateItem()方法 477

添加.destroyItem()方法 478

添加.isViewFromObject()方法 479

添加公共Parcelable.saveState()方法 479

添加.restoreState()、.startUpdate()和.finishUpdate() 479

测试galaxy数字图像资源分页UI界面 480

小结 481

第18章 Android PagerTitleStrip和PagerTabStri:ViewPager导航UI 482

PagerTitleStrip类:水平滑动屏幕标题 482

加载PagerTitleStrip数据:创建String[]数组 484

调用PagerTitleStrip布局:.getPageTitle()方法 485

定义PagerTitleStrip布局:使用XML编写PagerTitleStrips 486

利用PagerTitleStrip测试ViewPagingActivity类 487

配置PagerTitleStrip:使用Java方法 489

设置TextSize参数 489

设置TextColor参数 490

测试12SP TextSize和CYAN TextColor设置效果 491

设置TextSpacing参数 492

PagerTabStrip类:水平滑动屏幕标签 493

转换PagerTitleStrip UI到PagerTabStrip UI设计 494

转换XML UI定义 495

转换Java UI定义 495

渲染新的PagerTabStrip UI 497

为PagerTabStrip定义定制的颜色 498

添加定制的数字图像UI元素 500

在PagerTabStrip UI设计中使用图像合成 501

小结 503