Android SDK 上手指南


权利声明权利声明 Android SDK上手指南Android SDK上手指南 译自 tuts+ Code Tutorials:Learn Android SDK From Scratch 译者: 核子可乐、pockry 编校: pockry 出品: 51CTO移动开发频道 本电子书内容著作权归原作者及译者所有。 本电子书由51CTO移动开发频道制作并发行,禁止用于商业目的。 编者按编者按 越来越多的人开始尝试Android开发,因为它成本极低,所有的工具基本都能 免费获得,并且市场广大,我们开发出的产品可以有很多潜在用户,如果是做 着自己用,也很有价值。 网络上Android开发的入门教程已经很多,我们在这里推出的是tuts+上面的最 新版本,有理论的讲述也有实践的指导,如果你正打算学习Android开发,这 将是一本很好的入门指导。 本书针对的读者是刚开始准备学习Android开发的人,需要有一定的编程经 验,但不需要太多,如果了解过Java、学习过HTML足矣。 你可以在这里看到本书的在线版,在这里看到它的英文原版。 目录目录 第一章 环境需求第一章 环境需求 让我们从安装Android开发环境开始。 第二章 IDE:Eclipse速览第二章 IDE:Eclipse速览 Eclipse原本是Google官方推荐的IDE,对于开发一个Android app来说它足够好用。 第三章 IDE:Android Studio速览第三章 IDE:Android Studio速览 Google发布了官方的Android开发IDE:Android Studio,我们有必要对它来一个检视。 第第四四章 应用程序结构章 应用程序结构 在开始开发前,我们有必要了解一个Android App的结构。 第第五五章 用户界面设计章 用户界面设计 用户界面是移动App非常重要的部分,我们来学习如何构建用户界面。 第第六六章 用户交互章 用户交互 用户交互逻辑是一个App的核心。 第七章 Java应用程序编程第七章 Java应用程序编程 Android程序是用Java语言编写,让我们来快速了解一下Java语言。 第八章 应用程序资源第八章 应用程序资源 现在让我们来研究一下项目中可能用到的资源类型,包括布局、图片以及数据值。 第九章 Manifest文件第九章 Manifest文件 Manifest文件非常重要,它指定应用程序包、提供应用组件的形式化描述,此外还负责声明权 限、必要的API级别以及链接库等。 第十章 应用程序数据第十章 应用程序数据 Android有五种方法存储数据,让我们来看看如何来操作这些数据。 第十一章 虚拟与物理设备第十一章 虚拟与物理设备 接下来,我们将一同探索如何在物理及虚拟设备上运行自己的应用程序并与之互动。 第十二章 运行与调试第十二章 运行与调试 当我们开始着手创建Android应用程序时,需要关注的重点在于运行应用程序并将信息记录到 控制台以监控应用的运行活动。 第十三章 Activity与生命周期第十三章 Activity与生命周期 当大家开始学习如何为Android平台开发应用程序时,Activity当中所涉及的大量状态与回调方 法可能会成为很多难题乃至混乱的根源。 第十四章 Android组件详解第十四章 Android组件详解 Android应用程序当中包含四大组件:Activity、Service、Content Provider以及Broadcast Receiver。让我们来看看它们都是什么。 第十五章 示例项目第十五章 示例项目 Android SDK示例项目中的应用能够执行种种功能,例如各类用户界面元素、数据管理、交互 等,值得大家探索一番。 第十六章 应用程序发布第十六章 应用程序发布 要通过Google Play商店进行应用程序发布,我们需要注意一些必要条件,建议大家认真了解 这些内容,并尽可能严格贯彻。 第十七章 下一步学习方向第十七章 下一步学习方向 在今天的文章中,我们将把全部注意力集中在可资选择的未来学习对象上。 第十八章 知识测试第十八章 知识测试 前面我们已经了解了为Android平台创建应用程序过程中需要涉及的各种基本概念及知识要 点。最后请大家接受一份结业测试、看看自己是否掌握了前面提到的各项知识。 第一章 环境需求第一章 环境需求 这是我们系列教程的第一篇,让我们来安装Android的开发环境并且把Android SDK运行起来! 介绍介绍 欢迎来到Android SDK入门指南系列文章,如果你想开始开发Android App,这 个系列将从头开始教你所须的技能。我们假定你没有任何编程技能,当然,有 经验当然更好。 我们将从安装Android开发环境开始,到开发出一个功能完整的应用。Android 开发需要一些不同的技能,但如果你每次集中在一个之上,你将拥有开发所需 的牢固基础。当开始教程之后,我们将直接进入开发流程,你将直面具体的结 果! 操作系统需求操作系统需求 Android开发工具能在大多数操作系统上运行,包括Windows XP、Vista、7、 8,以及Linux发行版Ubuntu 8.0.4以上的版本,如果是苹果电脑,你需要将系 统升级到OS X 10.5.8以上。 如果你使用Linux 64位版本,它需要能运行32位程序。 下载并安装JDK6下载并安装JDK6 为了开发Android应用,你需要安装Java开发套件(JDK),你可以下载JDK 6 或者以上的版本。 在Oracle Java下载页面,选择Java SE,然后选择合适你操作系统的版本,你 也许需要注册一个Oracle账号,不过这是免费的。 下载ADT工具包下载ADT工具包 第一步:第一步: ADT工具包提供了所有Android开发所需要的工具,包括SDK、IDE、ADT插件以 及很多其他的工具。你可以前往Android开发者官网下载。 第二步:第二步: 如果你选择了Eclipse作为IDE,你需要安装ADT插件。 安装完Eclipse后双击打开,它会提示你选择一个工作空间,你的Android应用 代码将会储存在这里。在大多数情况下你可以通过Eclipse来操作Android文 件,但如果你需要直接与Android文件打交道,你需要记住选择的目录。 下载更新下载更新 第一步:第一步: 你有必要使你的Eclipse与ADT工具保持最新版。打开Eclipse,选择Help - Check for Updates。更新也许会花一些时间,请耐心等待。 如果有更新,会出现下面的画面,你可以选择需要的更新,点击“下一步”, 也许会有一些授权界面出现,选择接受。 第二步:第二步: 打开Android SDK Manager,更新Android SDK和SDK工具。你可以只选择需要 的SDK进行更新,进行本教程的学习,安装一个版本的SDK,以及一些工具就够 了。 第三步:第三步: 为了保持更新,你可以将ADT工具包更新的URL添加到Eclipse上,让它帮你检 查。选择菜单栏Help - Install New Software,如果下拉菜单不包含下面的 URL,那么输入后点击添加。 https://dl-ssl.google.com/android/eclipse/ 总结总结 上面就是Android开发环境的安装,下一篇我们将熟悉我们的IDE:Eclipse 与 Android Studio。 第二章 IDE:Eclipse速览第二章 IDE:Eclipse速览 本文我们将对Android开发最常使用的集成开发套件(IDE)Eclipse与专用的 Android开发IDE Android Studio做一个亲密接触。让我们先从Eclipse开始。 如何来看一个IDE好不好呢?当然是实际用来它来编写一段代码了。我们现在 来创建一个Android应用试试。由于我们还没有正式开始Android开发的学习, 所以这里的一些细节我们不用过多关注,我们只关心IDE的表现。 创建Android工程创建Android工程 打开Eclipse,点击New,出现一个创建向导。 在向导中展开Android目录,选择Android Application Project,这是创建 Android app所必需的一步,选择下一步。 在New Android Application界面,这里会有大量的设置,你点击文本框下面 会出现相关提示,你可以按照下图填好。 填好之后点击下一步会出现又一个设置界面,一般默认选项即可。 下面你将会看到应用图标的设置,不过现在使用默认的即可,即一个绿色的小 机器人。 然后下面会让你创建一个Activity,选择默认即可。 然后会让你确认,这是最后一步,点击“Finish”,你就创建了一个Android 工程。 使用Eclipse视图使用Eclipse视图 现在我们已经拥有一个Android工程,我们可以看看Eclipse在开发Android应 用中是如何表现的。 Eclipse的左侧是包管理器(Package Explorer),这里包含着你的工程文 件。这里你最应该关注的是src和res目录,以后开发中会用到。 中间是编辑区域,上面显示你打开的所有文件,比如你刚才创建的Activity, 你主要在这里进行编程。 Eclipse还会自动的打开布局文件,即“activity_main.xml”,这里你可以选 择可视化的布局界面,或者保持代码界面。 在编辑区域的右边,是文件的轮廓(outline)视图,它会显示文件里的结 构,使用它可以快速的在打开的文件里导航。 在Eclipse的底部是另一些视图,包括Problems、Javadoc以及声明窗口。开发 者通常使用这些区域来输出错误信息和调试结果。Android提供了非常好的log 输出工具logcat,让我们来打开它。 选择菜单Window - Show View - Other,在弹出框里,展开Android,选择 Logcat并点击OK。这个工具可以使应用程序在运行时输出信息,这个将帮助我 们开发。 使用Eclipse透视图(Perspective)使用Eclipse透视图(Perspective) Eclipse的透视图是非常有用的工具,它能记忆你的Eclipse界面的视图和布 局,提供某一情景下的最佳开发环境。 在Android开发中用的最多的是Java透视图,但当调试Android应用的时候你会 发现DDMS透视图也非常有用。下面让我们来打开它。 选择菜单Window - Open Perspective,然后在清单中选择DDMS。 Eclipse会记忆你最近打开的透视图,通过点击这些快捷按钮,你可以迅速的 在这些透视图中切换。 总结总结 现在我们已经熟悉了Eclipse,将Eclipse的全貌记在心里将有助于你开始开发 一个Android应用。下一章我们将会讲Android Studio。 第三章 IDE:Android Studio速览第三章 IDE:Android Studio速览 Android Studio是Google官方提供的IDE,它是基于IntelliJ IDEA开发而来, 用来替代Eclipse。不过目前它还属于早期版本,目前的版本是0.4.2,每个3 个月发布一个版本,最近的版本由2014年1月发布。 Android Studio包括了所有开发Android app所需要的工具,但是它并不成 熟,所以如果需要稳定还是推荐使用Eclipse。不过Android Studio为我们带 来了许多新的特性,让我们来看看这个令人期待的未来之星。 安装安装 你可以在Android开发者官网上下载对应的版本。 创建工程创建工程 打开Android Studio(下面缩写为AS),在欢迎界面有一些选项,选择 New Project。 你可以看到创建界面和Eclipse很相似,你可以全部选择默认,然后点击下一 步。 一路下一步,这些和Eclipse很类似。 创建向导结束后,AS会创建一个AndroidStudioProjects文件夹,所有的 Android工程文件都在这里。 开发环境开发环境 当创建工程完成后,AS会默认打开Activity以待编辑,并且同时打开一个虚拟 设备界面,将应用显示在上面。 在Eclipse中我们会有一个包浏览器(Package Explorer),在AS也有类似的 界面,只是不是默认显示,双击项目名即可打开。 在布局界面你可以同时看到组件树以及可视化界面。 AS和Eclipse的一个不同点是,AS里你需要操作的文件基本都在src目录下面, 因为AS是基于Gradle的,不过这并不影响你在两种IDE中切换使用。 工程的交互工程的交互 AS的一个优点是它很多的工具都有按钮可以直接使用,如AVD Manager、SDK Manager、调试工具等。 和Eclipse一样,AS也提供了很多视图以供和工程进行交互。其中你会发现一 个叫“Android”的视图非常有用,它提供了虚拟和真实的设备的信息,还包 括Logcat输出的信息。 总结总结 本文简单介绍了Android Studio的界面,但它包括更多好用的特性,能让开发 变得更加简单。这是因为它专门为开发Android应用而设计,不像Eclipse需要 支持更多的开发场景。当你用惯了Eclipse之后,也许你会尝试着使用一下 Android Studio。 现在我们的开发环境已经准备就绪了,在下一个章节里我们将会来看一下 Android app的结构。 第四章 应用程序结构第四章 应用程序结构 本教程将主要以探索与了解为主要目的,但后续的系列文章则将进一步带大家 深入学习如何创建用户界面、响应用户交互操作以及利用Java编排应用逻辑。 我们将专注于大家刚刚开始接触Android开发时最常遇到的项目内容,但也会 同时涉及一部分已经存在于应用结构当中的其它一些元素。在今天的文章中, 我们不会对这些额外元素进行深入探讨。总而言之,了解关于Android应用的 基础创建知识,这就是我们今天要完成的任务。 1. 源文件1. 源文件 第一步第一步 打开Eclipse并在Package Explorer当中查找我们已经创建完成的项目。 在“src”文件夹里,大家应该会看到设置项目所命名的项目包。包中应该包 含我们的Activity类文件,这也是要在编辑器中打开的内容。源文件夹保存着 我们在开发Android应用时所要用到的全部Java文件。 每当我们创建一个项目时,都会创建一个用于容纳各Java类文件的包。一款应 用程序可能拥有不止一个包,而且每个包当中也可能容纳着多个类文件。这些 类文件中的处理代码能够将我们的应用呈现给用户、响应用户的交互操作并执 行任何的必要处理。从实质上看,类文件是在根据面向对象概念模型划分与应 用程序相关的代码。 我们将在后续文章中进一步讨论关于Java的概念以及对应实践。在今天的教程 内,大家只需理解一个Java应用会将各类处理任务拆分成一定数量的对象。每 个对象都由一个类声明来定义,这在应用程序中通常是一个独立的文件,不过 也可以被嵌套在其它类文件当中。一个对象基本上就是一大段代码,其中承载 着与应用程序相关的某项功能的一部分。类文件中的代码能够引用应用程序中 的其它类或者应用程序中的其它包。 在大家着手进行应用程序开发时,首先需要向源文件夹中的包中添加Java类。 一个向用户提供用户界面的典型Android应用将拥有至少一个Activity文件, 应用中的不同屏幕显示内容还要用到更多Activity类。其它一些类型的应用, 例如工具程序或者服务,则采用不同的结构。大家最好首先关注Activity UI 这种类型的应用程序,并在熟练掌握之后再接触其它应用类型。 第二步第二步 现在查看新应用中的Activity类文件。我们会在本系列教程的后续文章中进一 步探讨Activity代码,因此目前大家不用太过关注细节。今天我们主要面向应 用中的主Activity,它会在应用启动后同时开始生效。大家的应用也可能会启 动其它一些用于用户交互的Activity。在我们创建自己的项目时,Eclipse会 对应用进行设置并将主Activity作为主类——它在项目清单当中也将被作为主 Activity进行显示,我们稍后会看到。 在主Activity类当中,大家会看到onCreate方法,其中包含的代码将在 Activity被创建——也就是应用程序启动时开始执行。在该方法中,大家会看 到以下代码行: setContentView(R.layout.activity_main); 在我们启动项目之后,这一行的内容用于指定我们所创建的布局文件,告诉 Android将其作为内容视图。这意味着无论布局文件中包含什么样的内容,都 将在该Activity显示在屏幕上时呈现给用户。 我们将在稍后进一步探讨相关话题,目前暂时需要将注意力集中 在“R.layout.activity_main”语法上。这就是我们的Java代码引用应用程序 资源的方式。我们将利用类似的语法通过资源的ID值对其进行引用,例如图片 及数据值等资源也可以通过这种方式实现引用。其中的“R”代表应用资源, 后面的部分则用于指定保存在“res/layout”目录下的条目类型——在这里就 是布局。这些资源最终要根据其名称进行识别——对于示例中的布局,使用的 就是文件名。由此推断,我们要使用的语法就成了“R.type.name”。在我们 开始编程之后,各位就会开始使用该语法。 在本系列的后续文章中,我们将向Activity类文件中添加代码以实现用户交 互。现在打开应用中的“res”文件夹,大家会在其中找到多个子文件夹。这 些文件夹是由Eclipse与ADT在我们启用新Android项目后默认创建而成的,不 过我们可能还需要为不同类型的资源添加其它一些目录。 2. 布局资源2. 布局资源 正如我们已经看到,项目创建后所生成的布局文件会保存在“res/layout”文 件夹中。如果某款应用拥有多个Activity屏幕,那么一般会为每个屏幕保留一 个独立的布局文件。大家可能还会将布局文件用于个别UI组件。当大家为 Activity创建类文件时,需要如上所述利用setContentView进行布局设置。除 此之外,大家也可以通过Java代码进行布局设置——这算是种备选方案。在我 们的示例中,布局设置是在应用执行时动态生成的。不过利用XML的优势在 于,我们可以在界面设计工作中直观感受布局方案的视觉效果。 在应用程序的主布局文件当中(现在应该已经用编辑器打开了),大家会看到 XML结构。如果各位之前没有接触过XML也不必担心,我们会在后续文章中进一 步讨论这些基础知识。就目前来说,大家只需了解:XML是一种标记语言,类 似于HTML——如果之前接触过Web开发的话。XML文件利用树状结构作为数据模 型。通常来说,一个布局文件拥有一个根布局元素,并将其作为特定布局类型 模型——其中所包含的用于UI条目的子元素则包括按钮、图片及文本等。 3. 可绘制资源3. 可绘制资源 大家在资源目录下应该会看到多个在名称中包含“drawable”字样的文件夹, 这些文件夹用于保存应用程序所使用的图片文件。这些图片文件可以是我们在 Eclipse之外所准备的数字图片文件,格式包括PNG或者JPEG等。或者,大家也 可以通过XML代码来描述形状、颜色以及外观,从而定义特定可绘制资源。一 旦我们在drawable文件夹中创建了文件,就可以在应用布局文件或者Java代码 中进行引用。这样一来,之前准备好的视觉元素就能用于应用UI了。 资源目录中会保留针对每一种尺寸的drawable文件夹。这些尺寸是各类运行 Android系统的设备在像素密度方面的通用型分类依据。具体类别分为低、 中、高、超高与超超高密度四种。只需从对应类型中作出选择,我们就可以在 对应尺寸的帮助下轻松简化多屏幕密度的支持过程。这意味着当我们在项目中 包含图片文件时,可以将其放置在不同的文件夹当中,并通过裁剪提供满足各 种密度方案的版本。 4. 数据资源4. 数据资源 在“res”目录中,我们会看到一些标题中带有“values”字样的文件夹。这 些文件夹用于容纳大家希望在应用程序中所使用的数据值。这些值可以包含文 本字符串以及数字。包含XML文件的值文件夹会列出其中的一项或者多项值。 每份列表都包含一个名称以及内容中的值。应用中的其它文件,例如Java类或 者布局文件,能够通过这些名称为引用这些值。在典型用例中,我们能够需要 通过这些保存在文本字符串的值在UI元素当中显示内容——例如按钮。 应用程序中的不同值文件,允许大家针对特定屏幕尺寸及API级别对值进行修 改。如果同样的值足以应对多种设备,则可以被直接保存在“Values”文件夹 内。 5. Manifest文件5. Manifest文件 在查看应用程序中的主文件夹时,大家一定会发现项目的Manifest文件。通过 双击即可利用编辑器将其打开。接下来,我们会看到一个显示其内容的视图。 点击编辑器窗口底部的“AndroidManifest.xml”标签来查看其XML代码。这个 文件将应用程序的各个方面定义成统一整体。Eclipse与ADT会在我们创建应用 的同时,在清单中创建特定元素,具体创建方式取决于大家在项目创建过程中 的设置。大家可以手动向清单中添加其它元素,例如添加其它Activity。 我们将运行其中的一部分主元素,旨在理解Manifest文件的作用,不过还有其 它多种元素可以被包含其中。在Manifest文件中所列举的新应用项目元素当 中,我们将看到uses-sdk元素,我们利用它表示最小及目标API级别。 Application元素中包含指向启动机制与应用程序名称的属性。在application 元素中还存在着一个activity元素,会在应用程序开始运行时通过intent- filter元素作为主Activity启动。当我们向应用中添加新的Activity时,则会 为每个相关元素添加新的activity元素。 大家可能还需要向Manifest中添加其它元素,其中包括uses-permission元 素,用于罗列应用所要求的权限——用户会在安装应用之前观看到该列表。权 限中包含多种操作条目,例如通过互联网获取数据、写入存储或者访问设备上 的其它功能——如相机。清单还会列举应用程序所能支持的设备类型以及其它 一些应用程序组件(例如后台服务)。 6. 其它文件6. 其它文件 讲到这里,我们已经谈到了大家需要了解的Android应用程序项目结构中的各 大主要方面。随着对Android开发的学习,大家将在今后经常与这些内容打交 道。通过Eclipse,我们还会看到项目中包含的其它一些文件及目录,不过就 目前来说基本都可以直接忽略。 正如在前面看到的,大家可以利用“R.”语法实现资源引用。Eclipse以及管 理系统的ADT都会引用应用中来自Java的资源。当大家在项目中对这些资源进 行添加或者编辑时,Eclipse会将对应内容写入“R.java”文件,从而帮助我 们利用“R.”进行资源引用。当大家开始处理自己的Java文件,会在引用时看 到Eclipse弹出的提示信息——这种机制能简化对应用资源的管理工作。 “R.java”文件被保存在“gen”文件夹中。请注意:千万不要尝试直接编辑 这个文件,它会在我们编辑项目资源时自动生成。系统会通过为应用中的每项 资源分配惟一整数ID的形式管理这一过程。 提示:当大家开始尝试Android应用程序开发时,可能会在使用R时遇到问题。如果Eclipse 显示任何与R相关的错误信息,特别是“R无法被解析为一个变量”,则需要检查类文件的 起始内容,看看其中是否存在“R”的导入语句,例如“import android.R;”。如果找到了对应 内容,特别是在已经将代码复制并粘贴到文件中后,请删除这一导入语句。如果遇到其 它与R相关的提示,请确保资源文件当中不存在错误。如果问题仍然存在,尝试利 用“Project”, “Clean”清理项目。当一切努力皆告失败时,试着重新启动Eclipse。 总结总结 在本篇文章中,我们了解了关于Android项目结构的基础知识。大家可以再花 点时间随意查看项目中的其它文件及文件夹,借此了解项目的整体结构。在接 下来的后续教程中,我们将在应用中创建用户界面元素并处理用户交互操作。 我们还会探讨关于Java编程的基本特性,借此进一步提升自己对Android开发 项目的理解。 第五章 用户界面设计第五章 用户界面设计 在本篇教程中我们将为应用程序项目添加布局方案,在这方面XML与Eclipse ADT接口将成为工作中的得力助手——不过在后面两节中还会用到一部分Java 开发知识。XML与Java在Android平台的开发工作当中可谓无处不在,如果大家 对二者还缺乏基本的了解,请尽快想办法补补课。对于刚刚入门的读者朋友来 说,本文所介绍的要点将成为各位日后开发工作的重要基础。 1. XML基础知识1. XML基础知识 在我们开始讨论布局之前,先来梳理作为标记语言的XML的基础知识。如果大 家对于XML已经很熟悉,可以直接跳过本节。XML是一种用于保存数据值的语 言。XML文件在多个领域发挥作用。它们在某些项目中的功能与数据库非常相 近,而且通常被作为网页的输出机制。如果大家之前曾经使用过HTML,应该 会对XML的基本功能感到熟悉。 在XML中,数据值被保存在元素当中。单一元素通常包含一个开始标记与一个 结束标记,如下所示: Onion 如大家所见,开始标记与结束标记几乎完全一样,惟一的区别在于结束标记中 多了一个“/”符号。在上面的例子中,数据值也就是元素内容,即文本字符 串“Onion”。开始标记也可以容纳与数据项目相信的其它属性信息,如下所 示: Onion 每项属性都有一个名称与一个值,其中值就是引号内的部分。元素中还可以包 含其它元素:
Onion Banana
在这种结构中,我们将section元素称为主元素、products元素则被称为子元 素。两个子元素之间属于“兄弟关系”。在XML文档当中,必 须存在一个root 元素作为主元素,或者被称为“嵌套”。这就构成了一种tree结构,其中子元 素作为自主元素延伸出去的分支。如果某个子元素之下还包含 其它子元素, 那么它本身同时也具有主元素属性。 大家还会遇到另一种自结束元素,其中开始与结束标记并非独立存在: 其中元素末尾的“/”符号代表结束。 我们在Android平台上所使用的全部资源文件都要用到XML标记,其中包括布局 文件、可绘制元素、数据值以及Manifest。 2. Android布局2. Android布局 第一步第一步 当大家在安装了ADT的Eclipse IDE当中使用XML时,输入过程中显示的相关背 景提示能让编码过程变得更轻松一些。在编辑器中打开新应用中的主布局文 件,确保XML编辑标签已经被选 中,这样我们就能直接对代码进行编辑了。我 们首先要处理的是用于主屏幕的布局方案,用户在启动应用之后最先看到的就 是它。Eclipse会提供一套基础布局,供我们进行个性化修改: 如大家所见,根元素是一项布局元素,在上面的示例中为RelativeLayout。 Android当中还提供其它几种布局类型,我们可以将一种布局嵌套到另一种当 中。这里的根布局元素拥有几项额外属性且与布局效果密切相关,例如宽度、 高度以及边距等等。布局元素当中的TextView允许开发人员显示一条文本字符 串。TextView是View的一种,View属于可见及交互性元素,用以构成我们的应 用程序UI。因此,应用程序中的每套分屏方案都要选择一种View,并在其中包 含一种或者多种布局机制。在Android系统中,这些布局被称为ViewGroup对 象,每个 ViewGroup内包含一套或者多套View。 第二步第二步 为了专注于一套布局的基础创建工作,我们要把主布局文件中的现有内容全部 删掉,这样才能从零开始着手设计。正如我们之前所提到,大家可以利用 Java代码创建自己的布局或者View,不过Android上的多种工具允许开发者利 用XML设计自己的应用UI——这样各位就可以在创建元素的同时直接观察设计 效果了。在某些实例中,大家可能见过单纯通过Java代码创建一些或者全部UI 的做法,但现实情况下大部分创建工作还是要由XML完成的。这种做法还能保 证应用程序逻辑与显示元素彼此独立。 LinearLayout会沿横向或者纵向显示我们打算使用的View。在以上示例中显示 方向为垂直,因此每个View都会沿屏幕下方依次排列。如 果采取横向布局, 那么各个View将由左至右依次排列。如果使用“layout width”与“layout height”两种属性(在Android当中,它们往往被称为布局参数),那么布局 会被拉伸至横向与纵向的最大长度。 在“layout height”声明行之后再添加一条新行,通过键入“android:”准 备开始输入属性。当大家输入对应内容,Eclipse就会提供一套与该属性相关 的列表。大家可以继续输入内容以缩小属性列表,也可以直接在列表中用鼠标 进行点选。现在我们选择“android:gravity”属性。 键入“center_horizontal”作为gravity值,这样其中包含的元素就会以X轴 为中心加以显示: android:gravity="center_horizontal" 这种方式适用于布局中的一切元素。我们可以添加其它几种额外显示属性,例 如填充、边距以及背景等。不过在今天的文章中,我们先从最简单的项目入 手。 3. 添加View3. 添加View 第一步第一步 正面我们开始向布局中添加View。所谓View,是指UI当中的可见元素。让我们 首先添加一些文本内容和一个按钮。进入LinearLayout元素(在开始忹结束标 记之间),输入“<”之后Eclipse就会提示大家与属性相关的可用元素列表。 在列表中选择TextView。请注意,与大部分View一样,这是一种自结束元素。 为TextView设置两种属性,分别为layout width与layout height(键 入‘android:’并选择对应提示): 通过“wrap_content”,我们可以保证View的宽度足以容纳其显示内容——这 就避免了像布局那样以填充方式显示元素。现在再为TextView添加另一项属 性,这一次通过列举文本字符串实现显示功能: android:text="Hello there" 在保存文件之后,大家会看到Eclipse显示出一条警告消息。如果将鼠标悬停 在消息之上,编辑器的边框处将显示该文本——这部分内容也会同时显示 在 Problem视图当中。警告内容为“Hardcoded string……should use @string resource(硬编码字符串……应使用@string资源)。”系统推荐的做法是将 每一个文本字符串值保存为一项值资源,而不应将其直接包含在布局 XML当 中。尽管从起步阶段来看这样的处理方式既麻烦又毫无意义,但一旦养成良好 习惯、大家会在今后的工作中逐渐发现其在大型项目中的价值。通过 Package Explorer找出“res/values/strings.xml”文件并打开,切换 到“strings.xml”标签并对代码进行编辑。 可以看到,Eclipse已经添加了几条字符串。要另行添加,只需为其设定名称 与值: Hello there 这意味着如果大家需要在应用程序UI当中不止一次使用同一条字符串,而且稍 后又需要对其进行修改,则只需在一处做出变更即可。保存字符串文件并切换 到布局文件。将TextView的“text”属性引用到值文件的对应字符串中: android:text="@string/hello" 我们通过在字符串名称前加上“@string”的方式告知Android工具需要在哪里 寻找字符串资源。这样一来,警告信息就不会再出现了。 Eclipse通常会在我 们编码的过程中发出这些提醒,从而通知我们当前存在的错误或者警示问题。 大家可以选择遵循或者忽略警告信息的内容,但对于错误则 必须加以调整, 否则应用程序将无法正常工作。 第二步第二步 在TextView之后添加一个Button:
还剩131页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

zenaster

贡献于2014-07-22

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf