随笔分类 -  从零开始--系统深入学习Android

摘要:第1章 RenderScriptRenderScript提供一个独立于平台并在本地运行的计算引擎,用它来加速你需要大量计算能力的应用。RenderScript是一个运行与Android上计算密集型的高性能架构。RenderScript主要是面向数据的并行计算,虽然串行计算密集型负载也不错。RenderScript运行时将在所有可用的处理器上并行工作,如多核CPU,GPU或DSP,让你专注于算法而不是调度工作或负载均衡。RenderScript对于图像处理,计算摄影或计算机视觉这样的应用程序尤其有用。对于RenderScript,你先要明白两个概念:1.高性能计算内核由C99语言编写2.Java 阅读全文
posted @ 2013-12-26 14:39 jy02432443 阅读(2484) 评论(2) 推荐(0) 编辑
摘要:第5章 硬件加速从Android 3.0 (API level 11)开始,Android 2D渲染管道能更好的支持硬件加速。硬件加速通过在View的Canvas上使用GPU执行各种绘画操作。因为硬件加速需要消耗更多的资源,所以你的App需要更多的内存。开启硬件加速最简单的方法是在整个应用全局设置。如果应用只使用标准的View和Drawable,全局设置不会产生不利的影响。然而,因为硬件加速不支持所有的2D绘制操作,开启这个功能会影响一些自定义View或者绘制调用。问题显示为不可见的元素、异常,或者像素渲染错误。为了补救这些,在以下几个层面中Android提供给你选项开启或者关闭硬件加速:Ap 阅读全文
posted @ 2013-12-23 18:30 jy02432443 阅读(1540) 评论(0) 推荐(0) 编辑
摘要:第4章 OpenGLAndroid通过使用开放图形库(OpenGL)对高性能的2D和3D图形处理提供支持,尤其是,OpenGL ES API。OpenGL是一个跨平台图形处理的API,并且定义了标准的软件接口用来调用处理3D图形的硬件。OpenGL ES是专门为嵌入式设备而开发的OpenGL。从Android 1.0就已经开始支持OpenGL ES 1.0 和1.1 API,而从Android 2.2(API 8)开始,Android提供了对OpenGL ES 2.0API的支持。注意:Android框架所提供的API和J2ME JSR239 OpenGL ES API非常相似,但是并不完全相 阅读全文
posted @ 2013-12-23 18:25 jy02432443 阅读(1893) 评论(0) 推荐(1) 编辑
摘要:第3章 Canvas和 DrawablesAndroid框架API提供一套2D绘制的API,允许你在canvas(画布)上渲染你自定义的图形或修改已存在的View并定制它们的外观,当绘制2D图形时,你通常会在下面二选一:A.从你的布局里绘制你的图形或动画到一个View对象中。用这种方式,你的图形由系统正常的View层次绘制过程来处理,你只需要简单的定义图形到View中即可。B.绘制你的图形到Canvas。这种方式你自己可以调用相应的类的onDraw()方法,或Canvas中的draw...()方法,如drawImage()。这样做时,你也能控制任何动画。选项A绘制到一个View中,当你想要绘制 阅读全文
posted @ 2013-12-23 18:19 jy02432443 阅读(955) 评论(0) 推荐(0) 编辑
摘要:第2章 View动画与Drawable动画2.1 View动画你可以使用View的动画系统,在View上执行的补间动画。补间动画进行,如起点,终点,大小,旋转,动画的其他普通法方面的计算。补间动画可以执行一系列简单的View对象的内容转换(位置,大小,旋转,透明度)。所以,如果你有一个TextView的对象,你可以移动,旋转,放大,或缩小文本。如果它有一个背景图片,背景图片将随着文字变形。animation这个包(package)中提供了所有用于补间动画类。定义补间动画所指定的序列可以通过XML或Android代码来定义。推荐使用XML文件来定义一个布局,因为它更具可读性,可重复使用,易修改。 阅读全文
posted @ 2013-12-23 18:12 jy02432443 阅读(447) 评论(0) 推荐(0) 编辑
摘要:第1章 属性动画及动画与图形概述Android提供了一系列强大的API来把动画加到UI元素中,以及绘制自定义的2D和3D图像中去。下面的几节将综述这些可用的API以及系统的功能,同时帮你做出最优的选择1.1 动画Android框架提供了两种动画系统:属性动画(在Android3.0中加入)以及View动画。这两种动画系统都有可行的选择,但是总的来说,属性动画系统是更好的选择,因为它更加灵活,并提供了更多的特性。在这两种系统之外,你可以使用Drawable动画(帧动画),就是你可以加载画图资源,并一帧接一帧的显示它们。属性动画:在Android3.0中加入 (API level 11), 属性动 阅读全文
posted @ 2013-12-23 18:09 jy02432443 阅读(1561) 评论(0) 推荐(0) 编辑
摘要:第5章 资源类型这一大章节的每个部分描述了一类应用资源的用法,格式和语法。你可以把这些资源放在你的资源目录下(即res/)。下面是对每个资源类型的简介:◆动画资源(Animation Resources)定义预设的动画。补间动画被保存在res/anim目录下且可通过R.anim这个类访问它。帧动画保存在res/drawable/目录下,可通过R.drawable这个类访问它。◆颜色状态列表资源(Color State List Resource)定义了一个根据视图状态改变的颜色资源。保存在res/color,通过R.color这个类访问。◆可绘制的资源(Drawable Resources)用 阅读全文
posted @ 2013-12-23 13:51 jy02432443 阅读(1245) 评论(0) 推荐(0) 编辑
摘要:第4章 本地化Android系统会在很多地区的不同设备上运行。为了能够将应用提供给更多的用户,你的应用应该以不同的方式处理文本、音频文件、数字、货币和图形,以适合于你应用使用的地点。本文档描述了本地化Android应用最好的实例。原则上允许你用Eclipse、Ant-based tools、或者其他任何搭载ADT的IED来开发Android应用。你应该已经有了一些Java的工作经验并熟悉Android资源的加载,熟悉在XML中声明用户界面元素,了解一些开发的知识(如Activity的生命周期),了解国际化和本地化的基本原则。4.1 概览:Android的资源切换资源包括文本的字符串、布局文件、 阅读全文
posted @ 2013-12-23 11:54 jy02432443 阅读(748) 评论(0) 推荐(0) 编辑
摘要:第3章 处理运行时改变一些设备配置在运行过程中可能会发生改变(例如屏幕横向布局、键盘可用性和语言)。当这样的变化发生时,Android会重新启动这个正在运行的Activity(onDestroy()方法会被调用,然后调用onCreate()方法)。这个重启的动作是为了通过自动往你的应用程序中载入可替代资源,从而使你的应用适应新的配置。为了正确执行一次重启,你的Activity在整个平凡的生命周期中重新保存它之前的状态是很重要的,Android是通过在销毁你的Activity之前调用onSaveInstanceState()方法来保存关于应用之前状态的数据。然后你就可以在onCreate()方法 阅读全文
posted @ 2013-12-23 11:51 jy02432443 阅读(416) 评论(0) 推荐(0) 编辑
摘要:第2章 资源访问一旦你在你的应用程序中提供了一个资源(在上一章资源提供中讨论过),你可以通过引用它的资源ID来调用它。所有在工程项目中R类中定义的资源ID都是能过aapt自动生成的。当你的应用程序被编译时,aapt生成了R类,其中包含了res/路径下所有资源的资源ID。对于每种类型的资源,都有的一R类的子类(如:R.drawable对应绘图资源)并且对于每一种资源类型,都有一个静态整型常量(如,R.drawable.icon)。这个整型常量就是可以被用来调用资源的资源ID。虽然资源ID是在R类中指定的,但你并不需要去那儿找资源ID。一个资源ID总是由以下部分组成:◆资源类型:每一个资源都是以某 阅读全文
posted @ 2013-12-23 11:49 jy02432443 阅读(892) 评论(0) 推荐(1) 编辑
摘要:第1章 资源提供你应该经常外部化你应用程序代码中的资源,比如图片、字符串等,这样有利于你独立处理这些资源。你也应该根据特定的设备配置提供一些可替代的资源,并且把他们分组保存在指定的路径名下。运行时,Android可以根据当前的配置使用适当的资源。比如,你也许会根据不同的屏幕尺寸提供不同的UI布局或是不同的语言设定提供不同的字符串。一旦你外部化了应用程序中的资源,你就能通过项目中的R类生成的ID来调用他们。本章将向你展示怎么样分类你Android项目中的资源,以及怎么样给特定的设备配置提供可替代的资源。1.1 资源类型分组你应该把每一种类型的资源分别放在你的项目中res/中特定的子路径下。这是一 阅读全文
posted @ 2013-12-23 11:33 jy02432443 阅读(2690) 评论(0) 推荐(0) 编辑
摘要:第12章 自定义组件Android平台提供了一套完备的、功能强大的组件化模型用于搭建用户界面,这套组件化模型以View和ViewGroup这两个基础布局类为基础。平台本身已预先实现了多种用于构建界面的View子类和ViewGroup子类,他们被分别称为widget和layout。界面工具集(widget)包括Button、TextView、EditText、ListView、CheckBox、RadioButton、Gallery、Spinner等这些常用部件以及有着专门用途的AutoCompleteTextView、ImageSwitcher和TextSwitcher。布局(layout)包 阅读全文
posted @ 2013-12-23 11:16 jy02432443 阅读(575) 评论(0) 推荐(1) 编辑
摘要:第11章 样式和主题style是用于指定View或window的外观和格式的一系列属性的集合。style可以指定高(height)、填补(padding)、字体颜色、字体大小、背景颜色等等属性。style定义在不同于用来设置布局的XML资源中。Android中的Syles与网页设计中的层叠样式表有着相似的原理——允许你将设计从内容中分离出来。例如,使用一个style,你可以将下面这个布局:变成这样:所有与style相关的属性从XML布局中移出,放到一个名为CodeFont的style定义中,通过style属性应用。你将在以下章节中看到此类style的定义。theme是一个应用于整个Activi 阅读全文
posted @ 2013-12-23 11:15 jy02432443 阅读(590) 评论(0) 推荐(0) 编辑
摘要:第10章 拖放使用Android的拖放框架,允许用户通过一个图形化的拖放动作,把数据从当前布局中的一个视图上转移到另一个视图上。这个框架包含了一个拖动事件类,拖动监听器和一些辅助的方法和类。虽然这个框架主要是为了数据的移动而设计的,但是你可以将这些移动的数据提供给其他的UI操作使用。例如:你可以创建一个当用户把一个彩色图标拖到另一个彩色图标上时,将颜色混合起来的应用。接下来本文将描述关于这个拖放框架的数据移动的内容。10.1 概述当用户执行一些被当作是开始拖动数据的信号的手势时,一个拖放动作就开始了。作为回应,你的应用程序告诉系统拖动动作开始了。系统回调你的应用程序获取一个代表数据正在被拖动的 阅读全文
posted @ 2013-12-23 11:11 jy02432443 阅读(1567) 评论(0) 推荐(0) 编辑
摘要:第9章 搜索在android平台上搜索是一个核心的用户功能。无论内容位于设备或网络上,用户应该能够搜索任何对它们可用的数据。为了创建一个一致的用户搜索体验,Android平台提供了一个搜索框架帮助你的应用程序实现搜索功能。搜索框架提供了两种模式的搜索输入:一个在屏幕的顶部搜索对话框或搜索小部件(SearchView),您可以将其嵌入到你的activity布局。在这两种情况下,Android系统将通过传递一个查询到特定的activity协助你实现搜索。下图9-1显示了一个示例搜索对话框和可选的搜索建议。图9-1 一个搜索对话框的屏幕截图一旦以设置好了搜索对话或者搜索widget,你就可以:◆可以 阅读全文
posted @ 2013-12-19 16:09 jy02432443 阅读(2198) 评论(0) 推荐(0) 编辑
摘要:第8章 Toast通知Toast通知是在窗口前面弹出的信息。它只占有信息所需要的空间量,并且用户当前的activity仍然是可见的、可互动的。这种通知自动地淡入和淡出,它不接受交互事件。他相当于一种临时的界面,用来反馈信息给用户,比如当你把某条信息保存为草稿的时候,会弹出如图8-1所示下面的截图是闹铃应用程序的一个Toast通知示例。一旦开启闹铃,就会显示一个Toast,它提示你闹铃已经设定成功,如图1-9-1所示;。图8-1 保存为草稿的toast效果你可以通过Activity或Service来创建和显示toast。如果你通过service创建了一个toast通知,那么toast通知就会出现 阅读全文
posted @ 2013-12-19 15:59 jy02432443 阅读(483) 评论(0) 推荐(0) 编辑
摘要:第7章 通知一个通知是一条消息他是显示于你应用程序之外的一个界面中。当你告诉系统要发布一个通知时,它首先作为一个icon出现在通知区域。为了看见通知的细节,用户可以点击通知区域展开一个新的界面。下面让我们来看一下图7-1和图7-2:图7-1 通知出现在通知区域图7-2 通知展开后的效果(drawer)注意:除非特别注明外,本章指的都是NotificationCompat.Builder,它在v4 Support Library中有,正式添加于API Level 15。但有了v4 Support Library低版本系统也能用。另外Notification.Builder添加于android3. 阅读全文
posted @ 2013-12-19 15:54 jy02432443 阅读(602) 评论(0) 推荐(0) 编辑
摘要:第6章 对话框一个对话框是一个小窗口,提示用户做出决定或输入额外的信息,一个对话框不填充屏幕并且通常用于在程序运行时中断,然后弹出通知提示用户,从而直接影响到正在运行的程序。图6-1就是对话框的外观。图6-1Dialog类是所有具体对话框的基类,但你应该避免直接实例化Dialog。因为可能有些现成的已经给你提供好了,比如以下几种:◆AlertDialog一个对话框,可以显示一个标题(可选),三个按钮(可选),内容的列表(可选),或一个自定义布局。◆DatePickerDialog或TimePickerDialog一个对话框,其中有一个预定义的用户界面,允许用户选择一个日期或时间。◆Progre 阅读全文
posted @ 2013-12-19 15:48 jy02432443 阅读(764) 评论(0) 推荐(0) 编辑
摘要:第5章 设置(Settings)应用程序通常包括允许用户修改应用程序的特性和行为的设置功能。例如,一些应用程序允许用户指定通知是否启用或指定多久使用云同步数据。如果你想要为你的应用程序提供设置,你应该使用Android的Preference APIs来构建统一的接口。本章的主角就是Preference,下面先让我们看一下图5-1::图5-1 这是android短信息应用程序的设置界面截图。它使用就是就是Preference5.1 概述相比使用View对象来构建用户接main,设置是构建Preference的子类。一个Preference对象是构建一个单一设置的一个部分。每一个Preferenc 阅读全文
posted @ 2013-12-19 15:42 jy02432443 阅读(2175) 评论(0) 推荐(0) 编辑
摘要:第4章 Action BarAction Bar是一个能用于确定应用程序和用户的位置,并提供给用户操作和导航模式的窗口功能。如果需要显著地展示当前用户的操作或导航,应该使用Action Bar,因为Action Bar为用户提供了一个统一的跨应用程序和系统的接口,并且针对不同尺寸的屏幕优雅的处理了Action Bar的适配。你可以通过ActionBarAPI来控制它的行为和可视性,这些API添加于Android 3.0(API级别为11)。 Action Bar设计的目的是:◆提供一个专门的空间来确定应用程序的标识和用户的位置。这是在应用程序图标或者是左侧的logo以及Activity的标题帮 阅读全文
posted @ 2013-12-19 15:28 jy02432443 阅读(900) 评论(0) 推荐(0) 编辑