Android Kotlin 基础知识 01.4:学习自行解决问题

此 Codelab 是“Android Kotlin 基础知识”课程的一部分。如果您按顺序学习这些 Codelab,您将会充分发掘此课程的价值。“Android Kotlin 基础知识”Codelab 着陆页列出了所有课程 Codelab。

简介

在此 Codelab 中,您将了解对 Kotlin Android 开发者有用的资源,包括模板、文档、视频和示例应用。

您应当已掌握的内容

  • Android Studio 的基本工作流程。
  • 如何在 Android Studio 中使用布局编辑器。

学习内容

  • 在哪里可以找到 Kotlin 和 Android 开发者信息和资源。
  • 如何更改应用中的启动器图标。
  • 在使用 Kotlin 构建 Android 应用时,如何寻求帮助。

您将执行的操作

  • 探索面向各个级别的 Kotlin Android 开发者的部分可用资源。
  • 下载并探索 Kotlin Android 示例应用。
  • 更改应用的启动器图标。

在此 Codelab 中,您将了解可供 Kotlin Android 开发者使用的模板、示例、文档和其他资源。

首先,您将基于 Android Studio 模板创建一个简单的应用并修改该应用。然后,您将下载并探索 Android Sunflower 示例应用。您将使用 Android Studio 中提供的剪贴画图片资源(笑脸)替换示例应用的启动器图标(向日葵)。

Android Studio 提供了适用于常见和推荐的应用及 activity 设计的模板。内置模板可节省您的时间,并帮助您遵循设计最佳实践。

每个模板都包含一个框架 activity 和界面。您在本课程中已经使用过 Empty Activity 模板。基本 Activity 模板具有更多功能,并纳入了推荐的应用功能,例如 Android 设备的应用栏中显示的选项菜单。

1 步:探索基本 activity 架构

  1. 在 Android Studio 中,创建一个项目。
  2. Choose your project 对话框中,选择 Basic Activity 模板,然后点击 Next
  3. 配置项目对话框中,根据自己的喜好为应用命名。选择 Kotlin 作为语言,然后选中 Use AndroidX artifacts 复选框。点击完成
  4. 构建应用并在模拟器或 Android 设备上运行应用。
  5. 请参阅下图和下表,了解标记的各个部分。在设备或模拟器屏幕上找到相应按钮。检查表中描述的相应 Kotlin 代码和 XML 文件。

熟悉 Kotlin 源代码和 XML 文件有助于您根据自己的需求扩展和自定义基本 activity 模板。

基本 activity 模板的架构

人数

界面说明

代码参考

1

状态栏,由 Android 系统提供和控制。

在模板代码中不可见,但您可以从 activity 访问状态栏。例如,您可以在 MainActivity.kt 中添加代码以在必要时隐藏状态栏

2

应用栏(也称为“操作栏”)提供视觉结构、标准化视觉元素和导航。

activity_main.xml 中,找到工具栏

AppBarLayout 元素内。为了实现向后兼容性,模板中的 AppBarLayout 会嵌入一个 Toolbar,该 Toolbar 的功能与 ActionBar 相同。

如需更改应用栏的外观,请更改工具栏属性。如需查看应用栏教程,请参阅添加应用栏

3

应用名称最初是从软件包名称派生出来的,但您可以将其更改为任何您想要的名称。

AndroidManifest.xml 中,查找

android:label="@string/app_name"

strings.xml 中指定 app_name 字符串。

4

选项菜单溢出按钮用于存放 activity 的菜单项。溢出按钮还包含应用的全局菜单选项,例如搜索设置。您的应用菜单项会进入此菜单。

MainActivity.kt 中,

onOptionsItemSelected() 方法用于实现当用户选择菜单项时会发生什么情况。

如需查看选项菜单项,请打开 res/menu/menu_main.xml

。此模板中仅指定了设置菜单项。

5

CoordinatorLayout ViewGroup 是一种布局,可为界面元素提供交互机制。应用的界面位于 content_main.xml 文件中,该文件包含在此 ViewGroup 中。

activity_main.xml 中,查找 include layout 指令。此布局中未指定任何视图;相反,该布局包含 content_main 布局,其中指定了应用的视图。系统视图与应用特有的视图是分开的。

6

该模板使用 TextView 显示“Hello World”。您需要将此 TextView 替换为应用的界面元素。

“Hello World”文本视图位于 content_main.xml 文件中。应用的所有界面元素都应在此文件中定义。

7

悬浮操作按钮

activity_main.xml 中,找到 FloatingActionButton 元素。悬浮操作按钮定义为使用剪贴画图标的界面元素。MainActivity.ktonCreate() 中包含一个桩,用于为 FAB 设置 onClick() 监听器。

第 2 步:自定义模板生成的应用

更改由“基本 activity”模板生成的应用的外观。例如,您可以更改应用栏的颜色,使其与状态栏的颜色保持一致。(在某些设备上,状态栏的颜色与应用栏所用的主色调相同,但颜色更深。)

  1. 更改应用栏显示的应用名称。为此,请将 res > values > strings.xml 文件中的 app_name 字符串资源更改为以下内容:
<string name="app_name">New Application</string>
  1. 通过将 android:background 属性更改为 "?attr/colorPrimaryDark",更改 res > layout > activity_main.xml 中应用栏 (Toolbar) 的颜色。此值将应用栏颜色设置为与状态栏匹配的较深主色:
android:background="?attr/colorPrimaryDark"
  1. 运行应用。应用的新名称会显示在状态栏中,应用栏的背景颜色会变深,并与状态栏的颜色保持一致。当您点击 FAB 时,系统会显示一个 snackbar(如下面屏幕截图中的标注 1 所示)。
  2. 更改 snackbar 文字。为此,请打开 MainActivity,然后在 onCreate() 中查找为按钮设置 onClick() 监听器的桩代码。将 "Replace with your own action" 更改为其他内容。例如:
fab.setOnClickListener { view ->
   Snackbar.make(view, "This FAB needs an action!", Snackbar.LENGTH_LONG)
       .setAction("Action", null).show()
}
  1. FAB 使用应用的强调色,因此更改 FAB 颜色的一种方法是更改强调色。如需更改强调色,请打开 res > values > colors.xml 文件并更改 colorAccent 属性,如下所示。(如需有关颜色选择方面的帮助,请参阅 Material Design 颜色系统。)
<color name="colorAccent">#1DE9B6</color>
  1. 运行应用。FAB 使用了新颜色,并且 snackbar 文本已更改。

3 步:了解如何使用模板添加活动

到目前为止,在本课程的 Codelab 中,您一直使用 Empty Activity 和 Basic Activity 模板来启动新项目。您还可以在创建项目后创建 activity 时使用 activity 模板。

  1. 创建应用项目或选择现有项目。
  2. Project > Android 窗格中,右键点击 java 文件夹。
  3. 依次选择 New > Activity > Gallery
  4. 通过选择其中一个 Activity 模板,向应用添加 activity。例如,选择 Navigation Drawer Activity 可添加具有抽屉式导航栏的 Activity
  5. 如需在布局编辑器中显示 activity,请双击 activity 的布局文件(例如 activity_main2.xml)。使用设计标签页和文本标签页可在 activity 的布局预览和布局代码之间切换。

GitHub 上的 Google Samples 代码库提供了 Kotlin Android 代码示例,您可以学习、复制这些示例并将其纳入到自己的项目中。

第 1 步:下载并运行 Kotlin Android 代码示例

  1. 在浏览器中,前往 github.com/googlesamples
  2. 对于 Language,请选择 Kotlin
  3. 选择最近修改过的 Kotlin Android 示例应用,然后下载该应用的项目代码。在此示例中,请下载 android-sunflower 应用的 ZIP 文件,该应用演示了 Android Jetpack 的部分组件。
  4. 在 Android Studio 中,打开 android-sunflower-master 项目。
  5. 接受 Android Studio 推荐的所有更新,然后在模拟器或 Android 设备上运行应用。

第 2 步:探索 Kotlin Android 代码示例

现在,您已在 Android Studio 中打开 Android Sunflower 示例应用,接下来可以了解该应用并探索其项目文件。

  1. 如需了解示例应用演示的内容,请访问 GitHub 中该应用的 README 文件。如需查看此示例,请参阅 Android Sunflower 自述文件
  2. 在 Android Studio 中,打开应用中的一个 Kotlin activity 文件,例如 GardenActivity.kt
  3. GardenActivity.kt 中,找到您不熟悉的类、类型或过程,然后在 Android 开发者文档中查找相关信息。例如,如需详细了解 setContentView() 方法,请在 developer.android.com 上搜索 setContentView()

第 3 步:更改启动器图标

在此步骤中,您将更改 Android Sunflower 示例应用的启动器图标。您将添加剪贴画图片,并使用该图片替换当前的 Android Sunflower 启动器图标。

启动器图标

您使用 Android Studio 创建的每个应用都从表示该应用的默认启动器图标开始。启动器图标有时也称为应用图标产品图标

如果您在 Google Play 上发布应用,则应用的启动器图标会显示在 Google Play 商店中的应用详情和搜索结果中。

在 Android 设备上安装应用后,应用的启动器图标会显示在设备的主屏幕上以及设备的其他位置。例如,Android Sunflower 应用的启动器图标显示在设备的搜索应用窗口中,如下面屏幕截图中的标注 1 所示。默认启动器图标(如下方 2 所示)最初用于您在 Android Studio 中创建的所有应用项目。

更改启动器图标

通过更改启动器图标的过程,您可以了解 Android Studio 的图片资源功能。

在 Android Studio 中,更改 Android Sunflower 应用的启动器图标的方法如下:

  1. Project > Android 窗格中,右键点击(或按住 Control 键点击)res 文件夹。依次选择 New > Image Asset。系统随即会显示配置图片素材资源对话框。

点击启动器图标的“前景层”标签页。

  1. Icon Type 字段中,选择 Launcher Icons (Adaptive & Legacy)(如果尚未选择)。点击前景层标签页。
  2. 对于 Asset Type,请选择 Clip Art,如下面的屏幕截图中所示的 1。

  3. 点击 Clip Art 字段中的机器人图标(如上图中的标注 2 所示)。系统会显示 Select Icon 对话框,其中显示了 Material Design 图标集。
  4. 浏览选择图标对话框,或按名称搜索图标。选择一个图标,例如情绪图标,以表达好心情。点击确定

  1. 配置图片素材资源对话框中,点击背景层标签页。对于素材资源类型,请选择颜色。点击色块,然后选择一种颜色作为图标的背景图层。
  2. 点击旧版标签页,然后查看默认设置。确认您要生成旧版、圆形和 Google Play 商店中使用的图标。点击下一步
  3. 系统会显示 Confirm Icon Path 对话框,其中显示了图标文件的添加和覆盖位置。点击完成
  4. 在 AVD 模拟器或 Android 设备上运行应用。

Android Studio 会自动将启动器图片添加到不同屏幕密度的 mipmap 目录。Android Sunflower 应用现在使用新的剪贴画图标作为其启动图标。

  1. 再次运行应用。确保新的启动器图标显示在“搜索应用”界面中。

第 1 步:探索官方 Android 文档

浏览一些最有用的 Android 文档网站,熟悉可用的资源:

  1. 前往 developer.android.com。这份官方 Android 开发者文档由 Google 负责更新。
  2. 前往 developer.android.com/design/。此网站提供了有关如何设计高质量 Android 应用的外观和功能的指南。
  3. 前往 material.io,这是一个关于 Material Design 的网站。Material Design 是一种概念性设计理念,概述了所有应用(而不仅仅是 Android 应用)在移动设备上的外观和功能。点击链接可详细了解 Material Design。例如,如需了解颜色的使用,请点击设计标签页,然后选择颜色
  4. 前往 developer.android.com/docs/,查找 API 信息、参考文档、教程、工具指南和代码示例。
  5. 前往 developer.android.com/distribute/,了解有关在 Google Play 上发布应用的信息。Google Play 是 Google 的数字分发系统,用于分发使用 Android SDK 开发的应用。使用 Google Play 管理中心来扩大用户群,并开始创收
  1. 不妨探索 Android 开发者 YouTube 频道,其中包含大量教程和提示。
  2. 访问 Android 官方博客,了解 Android 团队发布的资讯和提示。
  3. 在 Google 搜索中输入问题,Google 搜索引擎会从各种资源中收集相关结果。例如,使用 Google 搜索提出“印度最受欢迎的 Android 操作系统版本是什么?”这个问题。您甚至可以在 Google 搜索中输入错误消息。

第 3 步:在 Stack Overflow 上搜索

Stack Overflow 是一个程序员互助社区。如果您遇到问题,很可能已经有人发布了答案。

  1. 前往 Stack Overflow
  2. 在搜索框中输入问题,例如“如何通过 Wi-Fi 设置和使用 ADB?”您无需注册即可在 Stack Overflow 上进行搜索,但如果您想发布新问题或回答问题,则需要注册。
  3. 在搜索框中,输入 [android][] 方括号表示您要搜索已标记为与 Android 相关的帖子。
  4. 您可以结合使用标签和搜索字词,以便更具体地进行搜索。不妨试试以下搜索内容:
  • [android] and [layout]
  • [android] "hello world"

第 4 步:使用 SDK 管理器安装离线文档

安装 Android Studio 时,系统会同时安装 Android SDK 的基本组件。如需安装其他可用的库和文档,请使用 SDK 管理器。

如需探索 SDK 管理器并下载 SDK 文档,请按以下步骤操作:

  1. 在 Android Studio 中,依次选择 Tools > SDK Manager。系统随即会打开 SDK 管理器。
  2. 在 SDK 管理器的左侧列中,选择 Android SDK (在下方的屏幕截图中标记为 1)。
  3. 记下 Android SDK Location 字段中的路径(在下面的屏幕截图中为 2)。您稍后可以使用此路径来查找您安装的任何内容。
  4. 在 SDK 管理器中,点击 SDK Platforms 标签页。您可以在此处安装更多版本的 Android 系统。
  5. 点击 SDK Tools 标签页。您可以在此处安装默认未安装的 SDK 开发者工具。您还可以安装 Android 开发者文档的离线版本。
  6. 点击 SDK Update Sites 标签页。Android Studio 会定期检查列出的网站和所选网站是否有更新。
  7. 返回到 SDK Tools 标签页,然后选中 Documentation for Android SDK 复选框(如果尚未选中)。点击应用

    系统会打开一个确认对话框,其中显示了下载所需的磁盘空间。点击 OK
  8. 安装完成后,点击 Finish

如需查找您安装的文档,请按以下步骤操作:

  1. 在电脑上,前往 Android/sdk/ 目录。(如需查找该目录的路径,请参阅上方的屏幕截图中显示为 2 的 Android SDK Location 字段。)
  2. 打开 docs/ 目录。
  3. 找到 index.html 文件,然后在浏览器中打开该文件。
  • 官方 Android 开发者文档位于 developer.android.com
  • Material Design 是一种概念性设计理念,概述了应用在移动设备上的外观和功能。Material Design 不仅适用于 Android 应用。Material Design 指南位于 material.io
  • Android Studio 提供了适用于常见和推荐的应用及 activity 设计的模板。这些模板提供了适用于常见用例的有效代码。
  • 创建项目时,您可以为第一个 activity 选择模板。
  • 在开发应用时,您可以根据内置模板创建 activity 和其他应用组件。
  • Google 示例包含您可以学习、复制并纳入到项目中的代码示例。

Udacity 课程:

Android Studio 文档:

Android 开发者文档:

代码示例:

视频:

其他资源:

开始学习下一课:2.1:使用布局编辑器进行线性布局

如需本课程中其他 Codelab 的链接,请参阅“Android Kotlin 基础知识”Codelab 着陆页