华为鸿蒙手表实现除夕夜烟花燃放效果

举报
择城终老 发表于 2022/02/07 17:49:02 2022/02/07
【摘要】 经过一年多的普及与应用,鸿蒙系统早已经涉及华为的各个终端设备,比如手机、音箱、手表等等。正好博主拿到了华为WATCH GT Runner,那就用它来写鸿蒙手表开发的知识。

123

前言

经过一年多的普及与应用,鸿蒙系统早已经涉及华为的各个终端设备,比如手机、音箱、手表等等。正好博主拿到了华为WATCH GT Runner,那就用它来写鸿蒙手表开发的知识。

首图

image-animator组件

因为是第一篇博文讲解,为了让大家对鸿蒙手表App开发更感兴趣,我们不单独讲解任何组件。这里,我们通过除夕夜华为手表表盘绽放烟花效果,来让大家更有开发兴趣。

首先,在手表表盘绽放烟花,肯定是一个动态过程,可以用video组件去实现,也可以通过gif去实现。

但很遗憾,鸿蒙手表开发组件中,华为并没有提供video组件。因为没有谁会用手表看视频,那么只能通过一帧一帧的去轮换图片,来实现动态的烟花绽放效果。

而JS组件中,华为鸿蒙提供了一个image-animator。顾名思义,就是图片帧动画播放器,通过它我们可以间隔指定的秒数实现图片的轮换播放。

实现表盘烟花绽放

因为,既然是GIF分解的一帧一帧的图片,那么其必然都存储在项目的资源文件夹中,也就是entry-src-mian-js-default-common文件夹中,如下图所示:

资源文件目录

接着,我们需要在js代码中定义一个引用这个图片的数组:m_images,具体代码如下所示(index.js):

export default {
    data: {
        m_images:[ {src: "/common/8.png"}, {src: "/common/9.png"}
        , {src: "/common/10.png"}, {src: "/common/11.png"}, {src: "/common/12.png"}
        , {src: "/common/13.png"}, {src: "/common/14.png"}, {src: "/common/15.png"}
        , {src: "/common/16.png"}, {src: "/common/17.png"}, {src: "/common/18.png"}
        , {src: "/common/19.png"}, {src: "/common/20.png"}, {src: "/common/21.png"}
        , {src: "/common/22.png"}, {src: "/common/23.png"}, {src: "/common/24.png"}]
    }
}

因为华为WATCH GT Runner的表盘是466*466的分辨率屏幕,我们可以直接把烟花的所有图片的宽都设置为466,这样刚好显示在屏幕上。当然,也可以直接定义css样式文件设置也行。

不过,图片太多打包的应用越大,超过18M都不能安装。index.css代码如下所示:

.container {
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
}

.title {
    width: 200px;
    font-size: 30px;
    text-align: center;
}
.image-mode {
    width: 466px;
    height: 466px;
}

这里,博主直接将图片的宽高都设置为466px。样式定义以及图片资源文件的引用数组都设置完成之后,就可以直接设计表盘的布局文件,index.hml代码如下所示:

<div class="container">
    <image-animator images="{{m_images}}" duration="3s" class="image-mode"></image-animator>
</div>

其中,duration属性表示单次播放时长,这3s除以图片张数,就是每帧图片的间隔时间。

这样烟花效果就能完全实现,最后实现的效果如首图效果一模一样。

本博文的项目代码下载地址:点击下载

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。