写点什么

第一个鸿蒙应用

用户头像
释缘
关注
发布于: 2021 年 05 月 08 日

本应用是根据华为官方的开发者文档编写的,只是用来试一试鸿蒙系统。官网连接:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/start-second-page-0000000000029619

一、安装 DevEco Studio


附官网教程:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387


DevEcoStudio 安装非常简单,下载好安装包,一路点 next 就 ok,官网教程非常详细且有图。

环境的搭建也很简单,没有 Android 那么复杂,官网亦有教程。

二、开发应用

(1)创建项目

点击 File->New->NewProject。

选择 phone 创建手机应用,DevEcoStudio 功能非常强大,可以开发很多设备应用。我们选择创建手机应用,其他设备应用,大家有兴趣可以自己探索。

Templae(模板)选择 Java 模板。

点击 Next,继续下一步


如上图,可以自行填写 Project Name(项目名)、Package Name(包名)、Save Location(保存路径)。

(2)编写代码

1、在 entry/src/main/resources/graphic 目录下创建 background_button.xml 文件。如下图:



在文件中编写如下代码。这是按钮样式代码。

<?xml version="1.0" encoding="utf-8"?><shape    xmlns:ohos="http://schemas.huawei.com/res/ohos"    ohos:shape="rectangle">    <corners        ohos:radius="100"/>    <solid        ohos:color="#007DFF"/></shape>
复制代码


2、编写主页代码,主页在创建项目时会自动生成,在 entry/src/main/resources/layout 目录下,文件名是 ability_main.xml。

编写如下代码:

<?xml version="1.0" encoding="utf-8"?><DependentLayout    xmlns:ohos="http://schemas.huawei.com/res/ohos"    ohos:width="match_parent"    ohos:height="match_parent">    <Text        ohos:id="$+id:text"        ohos:width="match_content"        ohos:height="match_content"        ohos:text="Hello World"        ohos:text_color="#000000"        ohos:text_size="32fp"        ohos:center_in_parent="true"/>    <Button        ohos:id="$+id:button"        ohos:width="match_content"        ohos:height="match_content"        ohos:text="Next"        ohos:text_size="19fp"        ohos:text_color="#FFFFFF"        ohos:top_padding="8vp"        ohos:bottom_padding="8vp"        ohos:right_padding="70vp"        ohos:left_padding="70vp"        ohos:center_in_parent="true"        ohos:below="$id:text"        ohos:margin="10vp"        <!--引用了第一步创建的background_button.xml样式文件-->        ohos:background_element="$graphic:background_button"/></DependentLayout>
复制代码

主页创建了一个文本控件和按钮控件。


3、编写第二页代码,通过 Java 代码创建页面,和首页不一样,首页是通过 xml 文件创建的页面。

在 entry/src/main/java/com/example/myfirstapplication/slice 目录下创建 SecondAbilitySlice.java 文件。如下图:

选择 JavaClass。编写如下代码:

package com.example.myfirstapplication.slice;


import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.colors.RgbColor;import ohos.agp.components.DependentLayout;import ohos.agp.components.Text;import ohos.agp.components.element.ShapeElement;import ohos.agp.utils.Color;import ohos.agp.components.DependentLayout.LayoutConfig;


public class SecondAbilitySlice extends AbilitySlice {@Overridepublic void onStart(Intent intent) {super.onStart(intent);


    // 声明布局    DependentLayout myLayout = new DependentLayout(this);
// 设置布局宽高 myLayout.setWidth(LayoutConfig.MATCH_PARENT); myLayout.setHeight(LayoutConfig.MATCH_PARENT);
// 设置布局背景为白色 ShapeElement background = new ShapeElement(); background.setRgbColor(new RgbColor(255, 255, 255)); myLayout.setBackground(background);
// 创建一个文本 Text text = new Text(this); text.setText("Hi there"); text.setWidth(LayoutConfig.MATCH_PARENT); text.setTextSize(100); text.setTextColor(Color.BLACK);
// 设置文本的布局 DependentLayout.LayoutConfig textConfig = new DependentLayout.LayoutConfig(LayoutConfig.MATCH_CONTENT, LayoutConfig.MATCH_CONTENT); textConfig.addRule(LayoutConfig.CENTER_IN_PARENT); text.setLayoutConfig(textConfig); myLayout.addComponent(text); super.setUIContent(myLayout);}
复制代码


}

这个页面只有一个文本控件,非常简单。


4、编写 MainAbilitySlice.java,此文件在 entry/src/main/java/com/example/myfirstapplication/slice 目录下,是创建项目时自动生成的,是主页的逻辑代码。代码如下:

package com.example.myfirstapplication.slice;


import com.example.myfirstapplication.ResourceTable;import ohos.aafwk.ability.AbilitySlice;import ohos.aafwk.content.Intent;import ohos.agp.components.Button;


public class MainAbilitySlice extends AbilitySlice {

@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);

Button button = (Button) findComponentById(ResourceTable.Id_button);

    // 点击按钮跳转至第二个页面    button.setClickedListener(listener -> present(new SecondAbilitySlice(), new Intent()));}
@Overridepublic void onActive() { super.onActive();}
@Overridepublic void onForeground(Intent intent) { super.onForeground(intent);}
复制代码


}

以上代码创建了一个按钮,与 ability_main.xml 中的按钮控件绑定,设置了按钮监听。点击就会跳转到第二个页面。


5、整个项目目录


SecondAbilitySlice.java 和 background_button.xml 是自己创建的,其他都是自动生成的。MyApplication.java 是程序的入口,相关的知识可以在官网学习,本人建议先简单了解一下安卓开发,因为安卓开发的相关学习资料比较多,很多不同的系统项目有许多相似性。

(3)运行项目

1、打开虚拟设备

如上图,点击 HVD Manager 添加虚拟设备。添加虚拟设备需要在有网环境下进,因为想运行虚拟设备需要在线登录华为账号,否则无法运行。

点击允许即可。

左边栏选择 phone(别选错了),点击右边的绿色小三角即可运行虚拟设备。

注意标红地方,虚拟设备运行后会变成手机图标开头。


2、运行项目

点击上一个图的小三角运行程序。


运行结果如上图,点击第一张图的 Next 按钮,就跳转到第二张图所示页面。


三、结束

路漫漫其修远兮,吾将上下而求索。

用户头像

释缘

关注

还未添加个人签名 2021.04.08 加入

还未添加个人简介

评论

发布
暂无评论
第一个鸿蒙应用