鸿蒙应用从无到有

2021-08-25  本文已影响0人  王灵

好像是上周天我的mate30自己升级到harmonyos系统了,用下来基本和安卓一样,操作上略有差异。正好公司任务也不重就抽空了解了一下。

系统定位

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统
在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。

从官方的定义上来看,围绕万物互联为核心的一个系统。以账户为依据进行数据的流动来提升生活各方面的体验。比如周末在家在平板上搜索附近好玩的地方,然后还搜索了行车路线,出门的时候可以将搜索信息同步到手机上,上了车由手机将导航信息同步到车载地图上,通过账户的方式实现数据由平板到手机再到车机的信息共享与流动。

软件下载与环境配置

下载地址 https://developer.harmonyos.com/cn/develop/deveco-studio#download
建议下载 DevEco Studio 2.2 Beta1版,因为有可视化Ui非常的好用
环境配置 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/environment_config-0000001052902427
基本上安装文档一步步来就行了。

创建第一个鸿蒙应用(APP 因为我的老本行是android)

大家安装好的DevEco-Studio,在欢迎页点击Create HarmonyOS Project,然后选择Empty Ability(Java)

20210825152502.jpg
下一步,注意选择Device Type为Phone
20210825152952.jpg

创建完成之后就可以初步的了解如何创建界面并进行交互了。
注意:harmonyos的界面逻辑区别于Android,harmonyos的界面有两个概念pageAbilitySlice.有点类似于功能模块与具体页面的关系。一个page代表一个功能集,AbilitySlice复杂功能的具体实现页。

20210825160803.jpg

MainAbility对应page。继承Ability,需要在onStart方法里通过setMainRoute函数设置默认的界面,即AbilitySlice
MainAbilitySliceMyAbilitySlice对应AbilitySlice,继承AbilitySlice,是page下的实际界面

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

AbilitySlice需要在onStart函数通过setUIContent设置ui的xml地址。和Android的R类似。但是我的xml的文件名是ability_main.xml,所以ResourceTable索引命名规则是类型_文件名
运行效果:自带国际化语言

20210825171634.jpg

实现按钮和点击跳转界面

现在界面上添加一个Next按钮

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

    <Text
        ohos:id="$+id:text_helloworld"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:background_element="$graphic:background_ability_main"
        ohos:layout_alignment="horizontal_center"
        ohos:text="$string:mainability_HelloWorld"
        ohos:text_size="40vp"
        />

    <Button
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text_size="28vp"
        ohos:text="Next"/>

</DirectionalLayout>

给按钮设置一个好看的样式
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>
    <Button
        ohos:id="$+id:button"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:top_padding="8vp"
        ohos:bottom_padding="8vp"
        ohos:left_padding="70vp"
        ohos:right_padding="70vp"
        ohos:background_element="$graphic:background_button"
        ohos:text="Next"
        ohos:text_size="28vp"/>
20210825173152.jpg

新建MyAbilitySlice

public class MyAbilitySlice extends AbilitySlice {
    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        setUIContent(ResourceTable.Layout_ability_my);
    }
}

界面很简单


20210825173502.jpg

通过id绑定Button设置点击事件


20210825173700.jpg
上一篇下一篇

猜你喜欢

热点阅读