要创建一个可以直接使用 android 手机或平板电脑上所有特性和功能的原生 Android 应用程序,您需要使用 Android 平台的 java api 框架。这是允许您执行常见任务的 API,例如在屏幕上绘制文本、形状和颜色、播放声音或视频以及与设备的硬件传感器交互。多年来,Android API 框架已经发展为更加稳定、直观和简洁。因此,今天成为一名 Android 开发人员比以往任何时候都更容易——如果您使用 Android Studio,使用该框架的官方工具更是如此。
在本教程中,我将向您展示如何创建您的第一个 Android 应用程序。在此过程中,我还将向您介绍重要的 Android 特定概念,例如视图、布局和活动。
在本教程中,我们将从头开始创建一个非常简单的应用程序。但是,如果您喜欢编写更少的代码或需要尽快开发应用程序,请考虑使用CodeCanyon上提供的原生 Android 应用程序模板之一。
使用应用程序模板,您可以在几个小时内拥有一个精美、可立即发布的应用程序。您可以参考以下教程了解如何使用 Android 应用模板:
先决条件
为了能够跟进,您需要:
最新版本的 Android Studio
运行 Android Marshmallow 或更高版本的设备或模拟器
如果您没有 Android Studio,请参考以下教程来了解如何安装和配置它:
1.创建一个新项目
您需要一个 Android Studio 项目来设计、开发和构建您的应用程序。因此,启动 Android Studio 并单击Start a new Android Studio project 按钮。
在下一个屏幕上,选择Add No Activity ,因为我们不想使用 Android Studio 提供的任何模板。然后按下一步 继续。
您现在将看到一个表单,您可以在其中输入有关您的应用程序的重要详细信息,例如其名称和包名称。当然,该名称是您的用户在安装您的应用程序时将在手机上看到的名称。
另一方面,包名称是您的应用在 Google Play 上的唯一标识符。指定时必须遵循 Java 包命名约定。例如,如果您的应用程序名称是 MyFirstApp,并且您为网站地址为 example.com 的组织工作,则包名称理想情况下应为“com.example.myfirstapp”。
接下来,您必须决定在编写应用程序时要使用的编程语言。现在,选择 Java并按Finish。
Android Studio 现在需要一两分钟来生成和配置项目。
2.创建一个活动
Activity 是 Android 应用程序中最重要的组件之一。它允许您为用户创建和显示用户界面。一个应用程序可以有一个或多个活动,每个活动都允许用户执行一项操作。例如,一个电子邮件客户端应用程序可以有三个活动:一个用于用户注册,一个用于登录,一个用于撰写电子邮件。
为了使本教程简单,我们将创建一个只有一个活动的应用程序。要创建 Activity,请在 Android Studio 的Project面板中,右键单击app 并选择New > Activity > Empty Activity。
在弹出的对话框中,输入MainActivity作为 Activity 的名称,选中Launcher Activity选项,然后按Finish。
检查 Launcher Activity 选项很重要,因为它允许您的用户使用 Android 启动器打开 Activity。因此,启动器活动可作为您应用的入口点。
3. 创建布局
每个活动通常至少有一个与之关联的布局。当您在上一步中创建活动时,您还为其生成了一个空布局。要查看它,请打开activity_main.xml文件。
活动的布局主要由视图和视图组组成。视图,有时也称为小部件,是用户界面的一个单独组件。按钮、文本字段、标签和进度条是视图的常见示例。视图组是可以用作视图容器的组件。通常,视图组还可以帮助您定位和设置视图的尺寸。
constraintLayout
是当今可用的最强大和最灵活的视图组之一。默认情况下,它是 Activity 布局 XML 文件的根节点。它看起来像这样:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- More code here --> </androidx.constraintlayout.widget.ConstraintLayout>
我们将在本教程中创建一个简单的时钟应用程序。除了当地时间,它还可以显示两个不同***的当前时间:印度和德国。
为了允许用户选择他们感兴趣的***,我们的布局将有两个Button
视图,一个用于德国,一个用于印度。为了真正显示时间,我们的布局将有一个TextClock
视图。
因此,在 中添加以下代码ConstraintLayout
:
<TextClock android:id="@+id/my_clock" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:format12Hour="h:mm:ss a" android:textSize="32sp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" android:text="Time in Germany" android:onClick="onClickGermany" android:id="@+id/germany_button"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@id/germany_button" android:text="Time in India" android:onClick="onClickIndia" android:id="@+id/india_button"/>
请注意,每个视图都必须具有 layout_width
和layout_height
属性。他们决定视图的大小。定位视图所必需的其他属性,例如layout_constraintBottom_toBottomOf
和。layout_constraintLeft_toLeftOf
使用上面的代码,TextClock
视图将被放置在屏幕的中心,并且两个Button
视图都朝向屏幕的底部。
默认情况下,TextClock
视图仅显示小时和分钟。format12Hour
但是,该属性允许您更改它。在上面的代码中,它的值被设置为h:mm:ss a
。这告诉TextClock
视图它应该显示小时、分钟、秒以及 AM/PM 后缀。
另请注意,每个Button
视图都有一个onClick
属性。此属性用于将单击事件处理程序分配给按钮。
处理程序尚不存在,但您可以要求 Android Studio 为您生成它们。为此,请将鼠标悬停在处理程序的名称上,直到您看到它旁边出现一个红色灯泡。然后单击灯泡并选择第二个选项,即带有黄色灯泡的选项。
此时,您可以尝试按 Shift-F10来运行应用程序。如果您的 XML 代码中没有错误,您应该在手机或模拟器上看到如下内容:
虽然按钮还不能工作,但TextClock
视图应该显示本地时间,每秒更新一次。
4.实现事件处理程序
当您为这两个按钮生成事件处理程序时,Android Studio 向您的活动的 Java 文件MainActivity.java添加了两个方法。如果你打开它,你应该在其中找到以下代码:
public void onClickGermany(View view) { } public void onClickIndia(View view) { }
在事件处理程序中,我们需要做的就是更改TextClock
视图的时区。但是如何从 Java 文件中引用布局 XML 文件中的视图?好吧,您只需使用该findViewById()
方法即可。
一旦你有了对TextClock
视图的引用,你就可以调用它的 setTimeZone()
方法来改变它的时区。因此,在方法中添加以下代码onClickGermany()
:
TextClock clock = findViewById(R.id.my_clock); clock.setTimeZone("Europe/Berlin");
同样,在方法中添加以下代码onClickIndia()
:
TextClock clock = findViewById(R.id.my_clock); clock.setTimeZone("Asia/Kolkata");
如果您想知道它是什么R
,它是一个自动生成的类,其中包含您在布局中拥有的所有视图的 ID。该findViewById()
方法希望您在向其传递 ID 时使用此类。
此时,您可以再次按Shift-F10重新运行应用程序。您现在应该能够单击按钮来更改时钟的时区。
结论
您刚刚为 Android 创建了第一个功能齐全的原生应用程序!我鼓励您对其进行一些更改。例如,您可以尝试使用其他时间格式或时区。您还可以尝试更改按钮和时钟视图的位置。
您可以使用许多视图和视图组来创建应用程序。请参阅官方文档 以了解它们。
来自 CodeCanyon 的 Android 应用模板和 UI 工具包
您可能已经注意到我们的应用程序看起来非常简单明了。那是因为我们使用的是默认主题,而没有对我们的视图应用任何样式。CodeCanyon充满了 Android UI 工具包,它们提供精美的手工制作的样式,您可以将其应用到您的视图中。