猜你喜欢
Android高级图形程序设计

Android高级图形程序设计

书籍作者:华莱士·杰克逊 ISBN:9787302597582
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9932
创建日期:2023-03-25 发布日期:2023-03-25
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《Android高级图形程序设计》详细阐述了与Android高级图形程序设计相关的解决方案,主要包括Android数字图像、Android数字视频、Android帧动画、Android程序动画、Android DIP、Android UI布局、Android UI小部件、高级ImageView图形设计、高级ImageButton、使用9-Patch技术创建可扩展的图像元件、高级图像混合、高级图像合成、数字图像切换、基于帧的动画、程序动画、高级图形、交互式绘图、使用VideoView和MediaPlayer类播放视频、从外部媒体服务器流式传输数字视频等内容。此外,本书还提供了丰富的示例及代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学读物和参考手册。

编辑推荐

《Android高级图形程序设计》深入研究了与设备无关的像素图形设计、Android UI布局、Android UI小部件设计、高级ImageView图形设计、创建自定义多状态ImageButton、使用9-Patch技术创建可扩展的图像元件、使用Android PorterDuff类实现高级图像混合、使用LayerDrawable类实现高级图像合成、使用TransitionDrawable类实现数字图像切换、使用AnimationDrawable类创建基于帧的动画、使用Animation类创建程序动画、使用Paint和Canvas类创建用户交互式绘图程序、使用VideoView和MediaPlayer类播放视频等主题。
总之,对于Android图形开发人员,本书是不可多得的兼具知识性、启发性和实用性的技术宝典。

前言

随着电子商务、手机游戏、在线视频、微信小程序和各种移动App开发的蓬勃兴起,Android前端设计的重要性也日益凸显。如何开发出画质精美而文件小巧的图像、动画和视频,并且同时可在包括手机、平板电脑、智能电视甚至智能手表在内的各种设备上进行显示和播放,是一个不小的挑战。本书就是为了帮助Android图形开发人员应对该挑战而编写的经验之作。

为了降低入门难度,本书采用了广受欢迎的Java和Eclipse ADT集成开发环境,然后从Android数字图像的格式和优化等知识开始,阐述了View图像容器、像素和宽高比、Alpha通道和混合模式等基础概念;在视频方面,介绍了数字视频格式、分辨率密度目标、编解码器和压缩、视频资产的引用等;在帧动画方面,演示了如何使用XML标记在Android中创建帧动画;在程序动画方面,阐释了补间动画的概念,实现了程序动画的旋转、缩放和Alpha混合等变换,并通过创建了更复杂的程序动画。

本书深入研究了与设备无关的像素图形设计、Android UI布局、Android UI小部件设计、高级ImageView图形设计、创建自定义多状态ImageButton、使用9-Patch技术创建可扩展的图像元件、使用Android PorterDuff类实现高级图像混合、使用LayerDrawable类实现高级图像合成、使用TransitionDrawable类实现数字图像切换、使用AnimationDrawable类创建基于帧的动画、使用Animation类创建程序动画、使用Paint和Canvas类创建用户交互式绘图程序、使用VideoView和MediaPlayer类播放视频等主题。

总之,对于Android图形开发人员,本书是不可多得的兼具知识性、启发性和实用性的技术宝典。

在翻译本书的过程中,为了更好地帮助读者理解和学习,以中英文对照的形式保留了大量的术语,这样的安排不但方便读者理解书中的代码,而且有助于读者通过网络查找和利用相关资源。

本书由周建娟翻译,唐盛、黄进青、陈凯、马宏华、黄刚、郝艳杰、黄永强、熊爱华也参与了本书的部分翻译工作。由于译者水平有限,不足之处在所难免,在此诚挚欢迎读者提出建议和意见。


译 者


目录

第1章 Android数字图像:格式、概念和优化

1.1 Android的数字图像格式:无损与有损

1.2 Android View和ViewGroup类:图像容器

1.3 数字图像的基础:像素和宽高比

1.4 数字图像的色彩:颜色理论和颜色深度

1.5 在Android中表示颜色:十六进制表示法

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

1.7 数字图像蒙版:Alpha通道的流行用法

1.8 使蒙版边缘更平滑:抗锯齿的概念

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

1.10 下载Android开发环境:Java和ADT

1.11 安装和更新Android Developer ADT

1.12 小结

第2章 Android数字视频:格式、概念和优化

2.1 Android数字视频格式:MPEG-4 H.264和WebM(VP8)

2.2 Android VideoView和MediaPlayer类:视频播放器

2.3 数字视频的基础:运动、帧和FPS

2.4 数字视频约定:比特率、流、标清和高清

2.5 Android的数字视频文件:分辨率密度目标

2.6 优化数字视频:编解码器和压缩

2.7 在Eclipse ADT中创建Pro Android Graphics应用程序

2.8 创建视频启动屏幕的用户界面设计

2.9 认识MainActivity.java Activity子类

2.10 创建视频资产:使用Terragen 3 3D软件

2.11 创建未压缩的视频:使用VirtualDub软件

2.12 压缩视频资产:使用Sorenson Squeeze

2.13 在Android中安装视频资产:使用raw文件夹

2.14 在Android应用程序中引用视频资产

2.15 小结

第3章 Android帧动画:XML、概念和优化

3.1 帧动画的概念:帧、帧速率和分辨率

3.2 优化帧动画:颜色深度和帧速率

3.3 使用XML标记在Android中创建帧动画

3.4 Android 标记:父帧容器

3.5 Android的标记:指定动画帧

3.6 为GraphicsDesign App创建帧动画

3.7 复制分辨率密度目标帧

3.8 使用XML创建帧动画定义

3.9 在ImageView中引用帧动画定义

3.10 使用Java实例化帧动画定义

3.11 小结

第4章 Android程序动画:XML、概念和优化

4.1 程序动画概念:补间动画和插值器

4.2 程序动画数据值:范围和中心点

4.3 程序动画变换:旋转、缩放、平移

4.4 程序动画合成:Alpha混合

4.5 程序动画计时:使用持续时间和偏移量

4.6 程序动画循环:RepeatCount和RepeatMode

4.7 标记:使用XML对程序动画进行分组

4.8 程序动画与帧动画:权衡

4.9 在GraphicsDesign应用中创建程序动画的构思

4.10 使用XML创建程序动画定义

4.11 在MainActivity.java中实例化Animation对象

4.12 使用创建更复杂的程序动画

4.13 旋转变换:复杂的动画集

4.14 调整变换值:轻松调整XML

4.15 小结

第5章 Android DIP:与设备无关的像素图形设计

5.1 Android支持设备显示的方式:UI设计和用户体验

5.2 设备显示概念:尺寸、密度、方向、DIP

5.3 与密度无关:创建相似的用户体验

5.4 通过标签支持Android多屏

5.5 提供针对设备优化的用户界面布局设计

5.5.1 使用Android的smallestWidth屏幕配置修饰符

5.5.2 使用可用屏幕宽度修饰符

5.5.3 使用可用屏幕高度修饰符

5.6 提供针对设备优化的图像可绘制资产

5.7 DisplayMetrics类:大小、密度和字体缩放

5.8 优化Android应用程序图标

5.9 在正确的密度文件夹中安装新的应用程序图标

5.10 为自定义应用程序图标配置AndroidManifest.xml

5.11 在Nexus One上测试新的应用程序图标和标签

5.12 小结

第6章 Android UI布局:使用ViewGroup类进行图形设计

6.1 Android ViewGroup超类:布局基础

6.2 ViewGroup LayoutParams类:布局参数

6.3 不推荐使用的布局:AbsoluteLayout和SlidingDrawer

6.4 Android的实验性布局:SlidingPaneLayout

6.5 Android RelativeLayout类:设计相对布局

6.6 Android LinearLayout类:设计线性布局

6.7 Android FrameLayout类:设计帧布局

6.8 Android GridLayout类:设计网格布局

6.9 DrawerLayout类:设计抽屉布局

6.10 添加菜单项以访问UI布局容器

6.11 创建目录活动

6.12 创建XML目录线性布局设计

6.13 将文本UI小部件添加到TOC UI布局容器

6.14 使用onOptionsItemSelected()方法添加菜单功能

6.15 在Nexus One上测试目录活动

6.16 小结

第7章 Android UI小部件:使用View类进行图形设计

7.1 Android View类:UI小部件的基础

7.2 View对象的基本属性:ID、布局定位和大小

7.3 View对象的定位特征:边距和填充

7.4 View对象的图形属性:背景、Alpha和可见性

7.5 View对象的功能特征:侦听器和焦点

7.6 创建书签工具UI:使用RelativeLayout和TextView

7.7 使用ImageView小部件:图形的基石

7.8 在Nexus One横向模式下测试UI设计

7.9 给ImageView图像资产添加阴影效果

7.10 更改ImageView XML以合并新资产

7.11 在RelativeLayout中合成背景图像

7.12 小结

第8章 高级ImageView图形设计

8.1 Android中的图形:ImageView类的起源

8.2 ImageView.ScaleType嵌套类:缩放控件

8.3 使用AdjustViewBounds

8.4 maxWidth和maxHeight:控制AdjustViewBounds

8.5 在ImageView中设置基线并控制对齐方式

8.6 使用CropToPadding方法裁剪ImageView

8.7 给ImageView着色和使用PorterDuff混合颜色

8.8 将色调应用于SkyCloud图像以改善阴影对比度

8.9 使用CropToPadding裁剪SkyCloud图像资产

8.10 更改ImageView的基线对齐索引

8.11 执行图像缩放:边距和填充属性

8.12 小结

第9章 高级ImageButton:创建自定义多状态ImageButton

9.1 Android中的按钮图形:ImageButton类概述

9.2 ImageButton的状态:正常、按下、焦点和悬停

9.3 ImageButton可绘制资产:合成按钮状态

9.4 可绘制的ImageButton:设置多状态XML

9.5 创建所有ImageButton状态资产:密度分辨率

9.6 将ImageButton缩放到与UI元素匹配的大小

9.7 小结

第10章 使用9-Patch技术创建可扩展的图像元件

10.1 Android NinePatchDrawable类:NinePatch的基础

10.2 关于9-Patch

10.3 Android NinePatch类:创建NinePatch资产

10.4 Draw 9-patch工具:创建NinePatchDrawable资产

10.5 使用XML标记实现NinePatch资产

10.6 小结

第11章 高级图像混合:使用Android PorterDuff类

11.1 像素混合:使图像合成更上一层楼

11.2 Android的PorterDuff类:混合的基础

11.3 PorterDuff.Mode类:Android混合常量

11.4 PorterDuffColorFilter类:混合ColorFilter

11.5 使用PorterDuff将ColorFilter效果应用于图像资产

11.6 PorterDuffXfermode类:应用混合常量

11.7 Paint类:将混合常量应用于图像

11.8 使用Bitmap类在图像之间应用PorterDuff

11.9 使用.setXfermode()方法应用PorterDuffXfermode

11.10 Canvas类:为合成创建画布

11.11 用XML和Java创建ImageView以显示画布

11.12 通过.setBitmapImage()方法将Canvas写入ImageView

11.13 小结

第12章 高级图像合成:使用LayerDrawable类

12.1 LayerDrawable对象:将图像合成提升到新的水平

12.2 Android的LayerDrawable类:图层的基础

12.3 父标签:使用XML设置层

12.4 为PorterDuff合成实例化LayerDrawable

12.5 创建一个Drawable对象以容纳LayerDrawable资产

12.6 将Drawable转换为BitmapDrawable并提取位图

12.7 修改PorterDuff管线以使用LayerDrawable

12.8 切换LayerDrawable图像资产:从源到目标

12.9 更改管线中使用的LayerDrawable图层

12.10 练习:使用两个LayerDrawable资产

12.11 关于Android中数字图像合成的一些意见和建议

12.12 小结

第13章 数字图像切换:使用TransitionDrawable类

13.1 切换:混合图像以创建运动幻觉

13.2 Android的TransitionDrawable类:切换引擎

13.3 父标签:在XML中设置切换

13.4 实例化ImageButton和TransitionDrawable对象

13.5 使用.reverseTransition()方法进行乒乓切换

13.6 通过ImageView进行高级TransitionDrawable合成

13.7 小结

第14章 基于帧的动画:使用AnimationDrawable类

14.1 AnimationDrawable类:帧动画引擎

14.2 关于DrawableContainer类

14.3 使用Java创建AnimationDrawable启动画面

14.4 使用Android Runnable类运行动画

14.5 为动画创建setUpAnimation()方法

14.6 创建一个新的AnimationDrawable对象并引用其帧

14.7 使用AnimationDrawable类的.addFrame()方法

14.8 使用.setOneShot()方法配置AnimationDrawable

14.9 使用Handler类调度AnimationDrawable

14.10 设计AnimationDrawable以循环回到第1帧

14.11 添加事件处理以允许通过单击播放帧动画

14.12 小结

第15章 程序动画:使用Animation类

15.1 关于Animation类:程序动画引擎

15.2 关于TranslateAnimation类:用于移动的Animation子类

15.3 关于ScaleAnimation类:用于缩放的Animation子类

15.4 放大徽标:使用ScaleAnimation类

15.5 AlphaAnimation类:用于混合的Animation子类

15.6 制作PAG徽标淡入效果:使用AlphaAnimation类

15.7 AnimationSet类:创建复杂的动画集

15.8 为PAG徽标动画创建AnimationSet

15.9 RotateAnimation类:用于旋转的Animation子类

15.10 旋转PAG徽标:使用RotateAnimation类

15.11 使用Android Runnable类运行AnimationSet

15.12 为AnimationSet创建一个TranslateAnimation对象

15.13 小结

第16章 高级图形:掌握Drawable类

16.1 Android Drawable资源:Drawable对象的类型

16.2 创建ShapeDrawable对象:XML 父标签

16.3 Android Drawable类详解

16.4 创建自定义Drawable:ImageRoundingDrawable

16.5 创建用于绘制Drawable画布的Paint对象

16.6 Android Shader超类:用于绘图的纹理贴图

16.7 Shader.TileMode嵌套类:Shader平铺模式

16.8 BitmapShader类:使用位图的纹理映射

16.9 为Drawable对象创建和配置BitmapShader

16.10 Android Rect和RectF类:定义绘图区域

16.11 定义RectF对象并调用.drawRoundRect()方法

16.12 Java InputStream类:读取原始数据流

16.13 小结

第17章 交互式绘图:交互式使用Paint和Canvas类

17.1 Android onDraw()方法:在屏幕上绘图

17.2 Android Canvas类:数字工匠的画布

17.3 Android Paint类:数字工匠的画笔

17.4 为SketchPad设置GraphicsDesign项目

17.5 创建自定义View类:SketchPadView类

17.6 Android Context类详解

17.7 配置SketchPadView()构造函数方法

17.8 创建坐标类以跟踪触摸X和Y点

17.9 Java List实用工具类:获取有序集合

17.10 Java ArrayList实用工具类:集合列表数组

17.11 创建一个ArrayList对象以保存触摸点数据

17.12 实现.onDraw()方法:绘制画布

17.13 创建OnTouchListener()方法:事件处理

17.14 Android MotionEvent类:Android中的移动数据

17.15 处理移动数据:使用.getX()和.getY()方法

17.16 编写SketchPad Activity的代码:使用SketchPadView

17.17 测试SketchPad Activity类:手写PAG徽标

17.18 使用位图源进行绘图:实现InkShader

17.19 小结

第18章 使用VideoView和MediaPlayer类播放视频

第19章 从外部媒体服务器流式传输数字视频


产品特色