美文网首页
鸿蒙应用从无到有

鸿蒙应用从无到有

作者: 王灵 | 来源:发表于2021-08-25 16:12 被阅读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

    相关文章

      网友评论

          本文标题:鸿蒙应用从无到有

          本文链接:https://www.haomeiwen.com/subject/zhasiltx.html