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 模板。“基本活动”模板提供更多功能,并集成了推荐的应用功能,例如 Android 设备上应用栏中显示的选项菜单。

1 步:探索基本 Activity 架构

  1. 在 Android Studio 中,创建一个项目。
  2. Choose your project 对话框中,选择“Basic Activity”模板,然后点击 Next
  3. Configure your project 对话框中,您可以随意为应用命名。选择 Kotlin 作为语言,然后选中 Use AndroidX 工件复选框。点击 Finish
  4. 构建应用并在模拟器或 Android 设备上运行该应用。
  5. 确定下图中带标签的部件。在设备或模拟器屏幕上查找对应的类。检查表中所述的相应 Kotlin 代码和 XML 文件。

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

基本 Activity 模板的架构

#

界面说明

代码参考

1

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

不在模板代码中显示,但您可以从 Activity 访问状态栏。例如,您可以根据需要在 MainActivity.kt 中添加代码以隐藏状态栏

2

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

activity_main.xml 中,查找 Toolbar

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

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

3

应用名称最初源自您的软件包名称,但您可以更改为所需的任何内容。

AndroidManifest.xml 中,查找

android:label="@string/app_name"

strings.xml 中指定 app_name 字符串。

4

options-menu 溢出按钮用于存储 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 元素。FAB 定义为使用剪贴画图标的界面元素。MainActivity.ktonCreate() 中包含一个桩,用于为 FAB 设置 onClick() 监听器。

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

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

  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. 运行应用。应用的新名称会显示在状态栏中,而应用栏的背景颜色较深,与状态栏的颜色相匹配。点击悬浮操作按钮后,系统会显示一个信息提示控件,如以下屏幕截图所示。
  2. 更改信息提示控件的文本。为此,请打开 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 使用新颜色,信息提示控件文本已更改。

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

到目前为止,针对本课程中的 Codelab,您已使用空 Activity 模板和基本 Activity 模板启动新项目。您也可以在创建项目后创建活动时使用活动模板。

  1. 创建应用项目或选择现有项目。
  2. Project > Android 窗格中,右键点击 java 文件夹。
  3. 选择新建 &gt 活动 &gt 库
  4. 选择一个 Activity 模板,将 Activity 添加到应用中。例如,选择抽屉式导航栏 Activity 以添加具有抽屉式导航栏的 Activity
  5. 如需在布局编辑器中显示 Activity,请双击 Activity 的布局文件(例如 activity_main2.xml)。使用 Design 标签页和 Text 标签页可在 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 活动文件,例如 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。默认启动器图标(如下所示)最初用于您在 Android Studio 中创建的所有应用项目。

更改启动器图标

了解更改启动器图标的流程将向您介绍 Android Studio 的图片素材资源功能。

在 Android Studio 中,您可以通过以下方式更改 Android Sunflower 应用的启动器图标:

  1. Project > Android 窗格中,右键点击(或在按住 Ctrl 键的同时点击)res 文件夹。选择新建图片素材资源。此时将显示 Configure Image Asset 对话框。

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

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

  3. 点击 Clip Art 字段中的机器人图标(在上面的屏幕截图中显示为 2)。此时将显示 Select Icon 对话框,其中显示 Material Design 图标集。
  4. 浏览 Select Icon 对话框,或按名称搜索图标。选择图标(例如心情图标),暗示好心情。点击 OK

  1. Configure Image Asset 对话框中,点击 Background Layer 标签页。对于 Asset Type,选择 Color。点击色卡,然后选择用作图标背景图层的颜色。
  2. 点击旧版标签页,查看默认设置。确认您要生成旧版、圆形和 Google Play 商店中的图标。点击 Next
  3. 此时将显示 Confirm Icon Path 对话框,其中会显示添加和覆盖图标文件的位置。点击 Finish
  4. 在 AVD 模拟器或 Android 设备上运行应用。

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

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

第 1 步:查看 Android 官方文档

浏览一些最实用的 Android 文档网站,并熟悉有哪些可用功能:

  1. 访问 developer.android.com。Google 发布的这份官方 Android 开发者文档是最新的。
  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 标签页,然后选中 Docs for Android SDK(Android 文档文档)复选框(如果尚未选中)。点击应用

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

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

  1. 在计算机上,转到 Android/sdk/ 目录。(要查找该目录的路径,请参阅上方屏幕截图中的 2 所示的 Android SDK 位置字段。)
  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 着陆页