小试牛刀-抽奖程序

  1. 编写抽奖程序

    需求:设计一个抽奖程序,点击抽奖按钮随机抽取一个名字作为中奖者

    目标:了解项目结构,简单UI布局,属性方法、事件方法,程序运行及调试

  2. 界面原型

​ 待抽奖:

点击抽奖按钮:

1 新建项目

File》新建项目:

录入项目信息:

从index.ets页面预览生成的项目:

项目结构说明:

  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。

    • src > main > ets:用于存放ets源码。

    • src > main > ets > entryability:应用/服务的入口。

    • src > main > ets > pages:应用/服务包含的页面。

    • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。

    • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息

    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。

    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。

  • build-profile.json5:应用级配置信息,包括签名、产品配置等。

  • hvigorfile.ts:应用级编译构建任务脚本。

2 界面UI

界面原型:

在Index.ets页面清除原有代码,使用colum布局重新编写:

复制代码
@Entry
@Component
struct Index {

  @State name: string = '待抽奖'

  build() {
    Column(){
      Text('抽奖App V2.0')
        .fontSize(26)
        .fontWeight(FontWeight.Bold)
      Text(`恭喜:${this.name}`)
        .fontSize(32)
        .fontWeight(FontWeight.Bolder)
      Button('抽奖')
        .width('80%')
        .fontSize(26)


    }
    .width('100%')
    .height('100%')

  }
}

预览效果:

3 抽奖逻辑

点击抽奖按钮,从预定义数组中选择姓名并显示,使用随机数模拟抽奖过程。

定义抽奖姓名数组:

复制代码
  @State name: string = '待抽奖'
  private names: string[] = [
    '刘备',
    '关羽',
    '张飞'
  ]
...

在按钮点击事件中完成抽奖逻辑:

复制代码
      Button('抽奖')
        .width('80%')
        .fontSize(26)
        .onClick(()=>{
          let idx = Math.floor(Math.random()*3)
          this.name = this.names[idx]
        })

点击按钮测试效果:

4 本地模拟器运行

启动本地模拟器:

启动中:

启动完成,点击运行:

点击抽奖按钮:

运行结果:

代码仓

https://gitee.com/snowyvalley/harmony-app-dev-basic-course.git

相关推荐
雷达学弱狗2 小时前
链式法则解释上游梯度应用
开发语言·前端·javascript
小清兔5 小时前
c#基础知识
开发语言·数据库·学习·unity·c#·游戏引擎·.net
大雷神5 小时前
鸿蒙中应用闪屏解决方案
华为·harmonyos
奇某人6 小时前
【语法】【C+V】本身常用图表类型用法快查【CSDN不支持,VSCODE可用】
开发语言·vscode·markdown·mermaid
做一位快乐的码农7 小时前
php程序设计之基于PHP的手工艺品销售网站/基于php在线销售系统/基于php在线购物商城系统
开发语言·php
@珍惜一生@7 小时前
Qt开源库
开发语言·qt·开源
Slaughter信仰7 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第四章知识点问答补充及重新排版
java·开发语言·jvm
心灵宝贝7 小时前
Mac用户安装JDK 22完整流程(Intel版dmg文件安装指南附安装包下载)
java·开发语言·macos
secondyoung8 小时前
一文丝滑使用Markdown:从写作、绘图到转换为Word与PPT
开发语言·vscode·编辑器·powerpoint·markdown·visual studio·mermaid
雨枪幻。9 小时前
spring boot开发:一些基础知识
开发语言·前端·javascript