内容简介
第1部分 Android UI设计的核心类介绍:开发工具、布局容器和Widgets
第1章 Android UI设计工具:配置Android开发系统
Java 6:下载并安装Android基础支持
Android ADT Bundle:查找并下载Android IDE
Android ADT Bundle:安装Android IDE
Android ADT Bundle:启动IDE并更新ADT
UI线框图工具:下载并安装Pencil
数字图像编辑:下载并安装GIMP 2.8.10
3D建模和动画:下载并安装Blender
数字音频编辑:下载并安装Audacity 2.0.5
数字视频编辑:下载并安装Lightworks 11.5
小结
第2章 Android UI布局:布局容器和ViewGroup类
布局容器:使用XML实现基于标签的UI设计
使用参数:提炼并自定义UI标签
Android ViewGroup:布局容器的超类
ViewGroup.LayoutParams:控制布局的嵌套类
ViewGroup.MarginLayoutParams:边距嵌套类
边距(Margins)和间距(Padding)参数的差别
让ViewGroup动起来:LayoutAnimationController
创建UserInterface项目和pro.android.ui包
新建Android应用对话框
新建Android应用-配置项目对话框
新建Android应用-配置启动图标
新建Android应用-创建活动对话框
新建Android应用-空白活动对话框
ViewGroup XML属性:配置RelativeLayout
查看XML属性:配置TextView UI Widget
查看间距参数:在容器内添加空白
AnalogClock Widget:为ViewGroup添加一个View
使用值目录:利用XML完成UI设计
小结
第3章 Android UI Widgets:用户界面Widgets和View类
Android View类:用于UI Widgets的超类
Android View直接子类:重要的Widgets和工具
使用View属性:重要参数
View的焦点:用户在关注哪一个UI Widget
View监听器:让UI Widget响应用户操作
UI布局创建:使用setContentView()方法
在RelativeLayout容器中添加Button UI Widget
Eclipse ADT问题标签:在ADT中调试XML错误
相对位置:在层级中添加UI按钮
字符串常量:为UI按钮添加<string>标签
事件处理器:使用Java代码添加OnClickListener
控制AnalogClock的可见性:.setVisibility()方法
安装并配置模拟器:测试Java代码
完成UI仿真设计:添加两个按钮
小结
第2部分 Android UI设计Menu类介绍:OptionsMenu、ContextMenu、PopupMenu和ActionBar
第4章 Android UI选项菜单:OptionsMenu类和操作栏
Android Menu类:菜单制作的公共接口
Android用户界面菜单设计:概述
选项菜单
关联菜单
弹出菜单
使用XML定义菜单:<menu>和<item>标签
定义菜单属性:使用子标签参数
选项菜单设计:使用main.xml菜单定义
自定义OptionsMenu:添加字符串常量
自定义OptionsMenu:编辑参数
扩展OptionsMenu:添加6个以上的MenuItems
GIMP数字图像设计基础:创建菜单图标
设置目标模拟器:运行配置对话框
测试OptionsMenu:使用方向切换模式
OptionsMenu事件处理:onOptionsItemSelected()
小结
第5章 Android UI本地菜单:ContextMenu类和PopupMenu类
ContextMenu概述:ContextMenu公共接口
ContextMenu方法:如何实现ContextMenu
利用onContextItemSelected()方法实现ContextMenu事件处理
为UserInterface应用创建ContextMenu
ContextMenu文本常量:使用<string>标签
创建onCreateContextMenu()方法并扩展ContextMenu
使用registerForContextMenu()注册ContextMenu
创建onContextItemSelected()方法处理MenuItem选项
Android的PopupMenu类:UI Widget本地化菜单
为UserInterface应用创建PopupMenu UI
使用XML标记定义PopupMenu MenuItem对象
实例化用于PopupMenu的TextView UI Widget对象
升级应用到支持API Level 11
在OnClickListener()内部实例化PopupMenu
在Android AVD Nexus One模拟器中测试PopupMenu
小结
第6章 Android UI操作栏:高级操作栏设计和ActionBar类
ActionBar组件
ActionBar导航模式
Android ActionBar类
为ActionBar标签创建XML基础:布局
为ActionBar标签创建Java基础:Fragments
Android的LayoutInflater类
使用LayoutInflater
clockTabListener:部署TabListener的私有类
FragmentTransaction类
使用FragmentTransaction
FragmentTransaction类
小结
第3部分 Android UI设计:UI布局考虑、Android操作系统设计概念和Android UI设计指南
第7章 Android UI设计考虑:样式、目标屏幕密度和新媒体格式
Android媒体格式:数字图像和数字视频
数字图像和数字视频的颜色术语
数字图像压缩:概念和术语
Android中的声音:数字音频编码解码和格式
数字音频和音效设计背后的术语
声音采样
数字视频压缩:4D概念和术语
定义UI屏幕外观和观感:样式简介
为UserInterface应用的时钟创建样式
使用数字图像和Alpha通道:新媒体UI
GIMP 2.8.1 0与Android结合:合成两张图像
为各种设备创建不同分辨率密度图像资源
小结
第8章 Android UI设计概念:线框图和UI布局设计模式
UI设计原型制作:使用Pencil 2.0.5 制作线框图
为Android操作系统设置Pencil的工作环境
使用Pencil 2.0.5 复制ActionBar UI设计
在ActionBar添加应用图标和标题
使用Pencil 2.0.5 制作横屏模式UI设计原型
在Pencil中重新缩放UI设计以适配横屏模式
Android UI设计的复杂性:考虑因素众多
Android UI设计基本规则:符合Android UI规范
Android UI屏幕导航:Android中使用的主要手势
高级UI导航类:导航抽屉或滑动视图
Android应用内导航:上一级和返回的差异
支持用户配置应用:设置和帮助
UI设计中的反馈:通知和确认
UI设计中的品牌策略:书写风格、字体和图标
UI设计模式:根据产品类型分组设备
UI设计模式:为什么需要不同的布局
UI设计的向后兼容性:Android 2.x、3.x和4.x
Android UI设计原则:令人兴奋、简单、个性
小结
第9章 Android UI布局规范、差异和方法
UI布局间距:48 DIP用户界面布局规则
UI布局面板:单面板和多面板布局
UI布局复合视图:屏幕方向改变
自动缩放并定位UI设计:布局常量
设计UI元素彼此相关:RelativeLayout(相对布局)
使用多个UI布局定义:资源适配
相同布局的多个定义:布局别名
Android 3.2 之前版本的资源适配:小(Small)、大(Large)和超大(XLarge)
Android 3.2 版本之后的资源适配:DIP屏幕尺寸
应用屏幕尺寸支持:利用AndroidManifest进行声明
创建可转换的UI设计:使用资源适配
AnalogClock图形:为UI设计添加按钮
创建多个按钮标签:添加文本串常量
创建多个按钮元素:使用RelativeLayout
创建资源适配目录和横屏布局
小结
第10章 Android UI主题设计和数字媒体概念
主题简介:在整个应用或Activity中采用样式
适用整个应用范围的主题:<application>标签
定制主题:创建灰色操作栏
定制主题:创建红色标题文本
适用活动范围的主题:使用<activity>标签
Android数字图像格式:PNG8、PNG24、PNG32、JPEG、GIF、WebP
数字图像分辨率:像素阵列和宽高比
数字图像颜色值:颜色理论和颜色深度
图像合成:Alpha通道和混合模式
使用代码表示颜色或Alpha:十六进制
数字图像和UI遮罩:Alpha通道UI合成
在设计中获得光滑的边缘:使用抗锯齿
数字图像优化:压缩和抖动
数字图像分辨率和颜色深度
抖动
Alpha通道
创建世界时钟图像资源:GIMP合成
创建金色圆环时钟:GIMP中的色相偏移
AnalogClock UI的Java代码实现:整理完成
屏幕尺寸资源适配:太空中的AnalogClock
小结
第4部分 基础Android UI设计:基本布局容器——FrameLayout、LinearLayout、RelativeLayout和GridLayout
第11章 Android FrameLayout类:在UI设计中使用数字视频
Android FrameLayout类:独立内容帧框架
FrameLayout.LayoutParams嵌套类:Gravity(重力)
Android的VideoView类:在Frame中使用数字视频
Android视频的生命周期:8个视频回放阶段
Android的MediaPlayer类:视频回放引擎
MediaController类:控制视频回放
UserInterface应用闪屏:使用FrameLayout
Android的URI类:在Android应用中引用数据
使用Uri.Parse()方法:输入VideoView数据
核心数字视频概念:帧、帧率或FPS
Android中的数字视频:MPEG4 H.2 64和WebM格式
数字视频压缩:码率、流、标清和高清
数字视频压缩:使用编码器和设置
创建数字视频内容:使用Terragen3软件
创建非压缩的AVI格式:使用VirtualDub
应用视频压缩:使用Sorenson Squeeze
编辑Squeeze Pro预设
使用Squeeze It!按钮压缩MPEG4文件
开始视频回放:测试VideoView Java代码
使用FrameLayout UI容器缩放视频适配屏幕宽高比
在Android中循环播放视频:使用OnPreparedListener()
Android中的流式数字视频:在URI中使用HTTP URL
实现媒体传输UI:使用MediaController
小结
第12章 Android LinearLayout类:水平和垂直UI设计
LinearLayout类:Android最常用的UI类
LinearLayout类:水平或垂直UI设计
LinearLayout中的UI元素空间:使用布局权重
LinearLayout.LayoutParams嵌套类:布局权重
ImageButton类:创建定制的按钮图形
Android ImageButton类:多状态图形按钮
ImageButton状态:Normal、Pressed、Focused和Hovered
创建UserInterface菜单结构:UI布局菜单
使用GIMP数字图像软件进行UI设计
创建多状态ImageButton资源:使用GIMP 2.8.1 0
创建多状态ImageButtons:使用<selector>标签
创建LinearLayout UI设计:使用<LinearLayout>
填充LinearLayout UI设计:编写LinearActivity
高级设计中的嵌套UI布局容器
复杂的LinearLayouts:嵌套LinearLayout容器
三层LinearLayouts:嵌套LinearLayouts的嵌套
实现LinearLayout的功能:Java事件处理
小结
第13章 Android RelativeLayout类:使用一个布局容器进行UI设计
RelativeLayout类:利用相对性进行UI设计
RelativeLayout.LayoutParams嵌套类:UI设计
常用布局定位参数:Above、Below和Center
布局对齐参数:Top、Bottom、Left、Right、Start、End
本地布局定位参数:toLeftOf和toRightOf
对齐父布局定位参数:AlignParentTop等
在UserInterface菜单结构中添加RelativeLayout
将LinearLayout设计移植到RelativeLayout设计
使用RelativeLayout定位标签定位UI设计
利用RelativeLayout对齐UI设计
利用锚点UI元素实现UI设计边距对齐
使用MarginTop参数居中显示星球名称
微调参数使RelativeLayout UI设计更匀称
小结
第14章 Android GridLayout类:利用网格布局进行UI设计
GridLayout类:利用网格进行UI设计
使用RowSpec和ColumnSpec参数
关于GridLayout定位、伸缩性、空间和重力
GridLayout类的可见性:利用GONE常量
GridLayout类的缺点:没有权重参数
GridLayout中的布局参数:嵌套类
GridLayout.LayoutParams嵌套类:布局参数
GridLayout.Alignment嵌套类:对齐常量
GridLayout.Spec嵌套类:水平或垂直Spec
众多GridLayout类参数:默认设置
在UserInterface应用中实现GridLayout
在UserInterface菜单结构中添加GridLayout
定义GridLayout:网格UI设计基础
加入更多星球和信息:更新strings.xml
在GridActivity.java中利用Java进行GridLayout UI交互
利用重力参数控制GridLayout定位
利用列合并功能增加中间TextView区域
添加Java代码,实现GridLayout交互
在网格UI中添加新媒体元素和合成效果
小结
第5部分 高级Android UI设计:高级布局容器——DrawerLayout、SlidingPane、ViewPager、PagerTitleStrip和PagerTabStrip
第15章 Android DrawerLayout类:在UI设计中使用UI抽屉
DrawerLayout类:使用可伸缩UI进行设计
DrawerLayout所用到的Android类
Android ListView:带有选项列表的UI设计
Android AbsListView类:虚拟列表的基础类
Android AdapterView类:使用基于数组的Views
Android适配器接口:使用基于数组的Views
创建UserInterface应用的DrawerLayout Activity
定义DrawerLayout:创建UI抽屉的XML定义
建立自己的DrawerActivity Java Activity子类
添加ListView事件处理:实现UI功能
为火星添加<string>常量:更多的行星信息
添加抽屉自动缩回:closeDrawer()方法
精细化DrawerActivity类中的DrawerLayout
修改每个ListView的ImageView和背景
小结
第16章 Android SlidingPaneLayout类:在UI设计中使用滑动面板
SlidingPaneLayout类:跨设备类型的UI设计
SlidingPaneLayout类的层级结构
SlidingPaneLayout类适用的最佳UI设计
在SlidingPaneLayout中使用权重参数
探索3个SlidingPaneLayout嵌套类
在UserInterface应用中添加SlidingPaneLayout
定义SlidingPaneLayout:SlidingPane UI的XML代码
创建火星ImageButton:利用GIMP和XML
完成行星UI面板定义:添加4个ImageButtons
定义行星信息面板:添加5个TextViews
创建加载UI的SlidingPaneActivity子类
在Android Manifest中添加SlidingPaneActivity类
微调SlidingPaneLayout UI设计布局宽度
在SlidingPaneLayout UI设计中合成图像
在SlidingPaneLayout UI设计中使用多个图像
利用Java实现SlidingPaneLayout设计交互
使用不同模拟器测试SlidingPaneLayout
小结
第17章 Android ViewPager类:利用ViewPager实现水平导航
ViewPager类:水平滑动屏幕UI设计
ViewPager.LayoutParams嵌套类:布局属性
PagerAdapter类:管理ViewPages数组
PagerAdapter方法:实现PagerAdapter的覆盖方法
利用关键对象进行ViewPager索引
定义分页布局:使用XML编写多面板UI
为MainActivity菜单添加ViewPagingActivity类
配置AndroidManifest.xml
完成定义行星UI面板:添加4个ImageButtons
创建ViewPagingActivity类滑动太空图像
为ViewPagingActivity添加ViewPagerAdapter类
添加getCount()方法
添加.instantiateItem()方法
添加.destroyItem()方法
添加.isViewFromObject()方法
添加公共Parcelable.saveState()方法
添加.restoreState()、.startUpdate()和.finishUpdate()
测试galaxy数字图像资源分页UI界面
小结
第18章 Android PagerTitleStrip和PagerTabStri:ViewPager导航UI
PagerTitleStrip类:水平滑动屏幕标题
加载PagerTitleStrip数据:创建String[]数组
调用PagerTitleStrip布局:.getPageTitle()方法
定义PagerTitleStrip布局:使用XML编写PagerTitleStrips
利用PagerTitleStrip测试ViewPagingActivity类
配置PagerTitleStrip:使用Java方法
设置TextSize参数
设置TextColor参数
测试12SP TextSize和CYAN TextColor设置效果
设置TextSpacing参数
PagerTabStrip类:水平滑动屏幕标签
转换PagerTitleStrip UI到PagerTabStrip UI设计
转换XML UI定义
转换Java UI定义
渲染新的PagerTabStrip UI
为PagerTabStrip定义定制的颜色
添加定制的数字图像UI元素
在PagerTabStrip UI设计中使用图像合成
小结