鸿蒙开发—黑马云音乐之广告页

news2024/11/16 0:01:23

目录

1.页面布局

2.点击按钮跳转

3.倒计时自动跳转


接下来是项目实战,项目选用传智的黑马云音乐。

效果图如下:

1.页面布局

@Entry
@Component
struct ADPage {
  @State message: string = 'Hello World'

  build() {
    Stack({alignContent:Alignment.TopEnd}) {
      Image($r('app.media.ad'))
      Button({type:ButtonType.Normal}) {
        Text('跳过5')
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({top:10,right:10})
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
    }
  }
}

给主体增加一个stack容器,先放一张广告图片,建议选择本地图片,再放一个button,之后微调样式与位置。

2.点击按钮跳转

// 广告页的布局+逻辑
import router from '@ohos.router'

@Entry
@Component
struct ADPage {
  @State message: string = 'Hello World'

  build() {
    Stack({alignContent:Alignment.TopEnd}) {
      // 背景图片
      Image($r('app.media.ad'))

      // 背景图上的按钮
      Button({type:ButtonType.Normal}) {
        Text('跳过5')
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({top:10,right:10})
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
      .onClick(()=>{
      // 当用户点击按钮以后会被执行
      // 跳转到Index页面
        router.replaceUrl({url:'pages/Index'})
      })
    }
  }
}

给stack增加一个onclick属性,点击后会触发里面的内容或函数,设置跳转位置Index页。

3.倒计时自动跳转

页面进入的时候启动倒计时,可以在ets页面中使用aboutToAppear()方法

aboutToAppear()方法开启倒计时,倒计时可以使用setInterval()

import router from '@ohos.router'

@Entry
@Component
struct ADPage {
  @State count: number = 5 //表示5秒钟

  aboutToAppear() {
    // 开启倒计时功能,5秒以后自动跳转到首页
    // 1秒 = 1000毫秒
    setInterval(() => {
      this.count--
      console.log('触发:', this.count)
      //  如果this.count 等于0的时候,跳转到首页
      if (this.count == 0) {
        router.replaceUrl({ url: 'pages/Index' })
      }
    }, 1000)

    // router.replaceUrl({ url: 'pages/Index' })
  }

  build() {
    Stack({ alignContent: Alignment.TopEnd }) {
      // 背景图片
      Image($r('app.media.ad'))

      // 背景图上的按钮
      Button({ type: ButtonType.Normal }) {
        Text(`跳过${this.count}`)
          .fontSize(14)
          .fontColor(Color.White)
      }
      .margin({ top: 10, right: 10 })
      .padding(10)
      .borderRadius(20)
      .backgroundColor('#ffc7c8c8')
      .onClick(() => {
        // 当用户点击按钮以后会被执行
        // 跳转到Index页面
        router.replaceUrl({ url: 'pages/Index' })
      })
    }
  }
}

@State count: number = 5,设置变量count,初始值为5。

在aboutToAppear()方法中使用setInterval()。

 this.count--,count自减。

 if (this.count == 0) {
        router.replaceUrl({ url: 'pages/Index' })

判断count值,满足之后跳转到Index。

 console.log('触发:', this.count) 可以查看日志

查看步骤如下:

1)添加设备

2)启动模拟器

3)运行项目

4)查询

console.log('触发:', this.count)一开始设置的关键词是触发,输入触发搜索。

Text('跳过5')要改为Text(`跳过${this.count}`),这里单引号改为反引号“  ``  ”,引用变量固定格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1947900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Axure中继器实战篇:让数据展示和交互设计更上一层楼!

Axure中继器实战篇:让数据展示和交互设计更上一层楼! 前言 经过了前两章的学习,接下来我们去模拟的实际场景开启实战篇,以下是界面 1.前期准备 前期把页面准备好后,给中继器的每个单元格命名为了方便数据绑定的操作。 为了演示我准备了几十行数据,建议也多准备一点。…

学习Java的日子 Day56 数据库连接池,Druid连接池

Day56 1.数据库连接池 理解:池就是容器,容器中存放了多个连接对象 使用原因: 1.优化创建和销毁连接的时间(在项目启动时创建连接池,项目销毁时关闭连接池) 2.提高连接对象的复用率 3.有效控制项目中连接的…

vue 搜索框

效果 创建搜索组件: 在Vue项目中,首先需要创建一个搜索组件。这个组件通常包含一个输入框和一个搜索按钮。使用v-model指令将输入框与组件的数据属性(如searchKeyword)进行双向绑定,以便获取用户输入的关键词。处理搜索…

Linus: vim编辑器的使用,快捷键及配置等周边知识详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 vim的安装创建新用户 adduser 用户名Linus是个多用户的操作系统是否有创建用户的权限查看当前用户身份:whoami** 怎么创建设置密码passwdsudo提权(sudo输入的是用户…

锁相环 vivado FPGA

原理 同步状态/跟踪状态:相位差在2kπ附近,频率差为0到达上述状态的过程称为捕获过程锁相环的捕获带:delta w的最大值,大于这个值的话就不能捕获鉴相器(PD-phase discriminator):相乘加LPF&…

从0到1使用Docker部署java项目详解

Docker部署Java项目相比传统部署方式,在环境一致性、配置管理、可扩展性和安全性等方面具有显著优势。然而,它也带来了学习成本、资源消耗和复杂度增加等挑战。 云服务器 白嫖阿里云服务 通过免费试用方式获取自己的阿里云服务器。当然,如…

SQL-REGEX-常见正则表达式的使用

SQL-REGEX-常见正则表达式的使用 在SQL中,正则表达式(Regex)的使用可以帮助进行更灵活和精确的模式匹配和数据筛选。不同的数据库管理系统对于正则表达式的支持略有差异,但大体都是相似的。 Tips: 模式描述匹配内容…

优选算法之前缀和(上)

目录 一、【模板】一维前缀和 1.题目链接:DP34【模板】前缀和 2.题目描述: 3.解法(前缀和) 🍃算法思路: 🍃算法代码: 二、【模板】二维前缀和 1.题目链接:DP35【…

海外短剧CPS分销推广系统平台源码搭建方案介绍

随着全球内容消费市场的日益繁荣,短剧作为一种新兴的娱乐形式,正在迅速赢得全球观众的喜爱。特别是当国内短剧以其独特的创意和精湛的制作技艺,吸引了大量海外观众的关注时,短剧出海成为了国内影视行业的一大趋势。接下来为大家介…

HarmonyOS三方库的使用

系统组件难以提供比较优秀的界面,需要第三方库来实现一些比较好看的界面效果 三方库的获取: 开源社区支持OpenHarmony-TPC 和 Openharmony三方库中心仓 先目前已经拥有各种各样的三方库,包括UI 图片 动画 网络 数据存储 工具类 多媒体 安全等…

Cookie与Session 实现登录操作

Cookie Cookie 是网络编程中使用最广泛的一项技术,主要用于辨识用户身份。 客户端(浏览器)与网站服务端通讯的过程如下图所示: 从图中看,服务端既要返回 Cookie 给客户端,也要读取客户端提交的 Cookie。所…

Android开发中使用Base64类库进行密码加密报错解决

在对密码加密采用sdk自带类库Base64加密时,函数可跳转,能够索引到类函数位置,但是运行出现报错。 使用情况: 引用:import java.util.Base64; 调用:String decode new String(Base64.getEncoder().encod…

实战练习之Linux上实现shell脚本自动化编程

实验拓扑要求 主机环境描述 注意: 172.25.250.101-172.25.250.105 共 5 个 IP 地址由servera.exam.com服务器进行提供。172.25.250.106 由 serverb.exam.com 服务器进行提供。 需求描述 1. 172.25.250.101 主机上的 Web 服务要求提供 www.exam.com Web站点&#…

模拟ADG主库归档文件丢失,备库出现gap(增量备份解决)

文章目录 一、说明二、环境信息2.1.主备库环境信息2.2.检查主备是否同步正常 三、模拟日志断档3.1.模拟主库归档文件丢失3.2 查看主库状态出现GAP 四、RMAN增量备份恢复备库同步4.1 RMAN增量恢复备库4.2 开启备库redo同步4.3 主备库验证同步 一、说明 模拟Oracle主库归档文件丢…

C++图书管理系统

目录 实现功能 用户管理 图书管理 借阅与归还 未归还图书 部分效果图 结构体 Book 结构体 User 结构体 源代码 编译时在连接器命令行加入 完整代码 实现功能 用户管理 添加用户:输入用户ID、用户名和密码…

简单的git分支mergepush权限设定

简单的git分支merge&push权限设定 1. 需求 公司的分支很多,主要的有master分支,很多的业务需求分支,开发测试分支(uat,uat2,sit,sit2),这些分支当前是谁都可以进行提交,但是如果在分支上直接修改,或者…

3.1、数据结构-线性表

数据结构 数据结构线性结构线性表顺序存储和链式存储区别单链表的插入和删除练习题 栈和队列练习题 串(了解) 数据结构 数据结构该章节非常重要,上午每年都会考10-12分选择题下午一个大题 什么叫数据结构?我们首先来理解一下什…

如何查找下载安装安卓APK历史版本?

在安卓设备上,有时候我们可能希望安装某个软件的旧版本,可能是因为新版本不兼容、功能改变不符合需求或是其他原因。 安卓系统并不像iOS那样提供直观的历史版本下载界面。 不过,通过一些第三方市场和网站,我们仍然可以找到并安装…

通信原理实验六:实验测验

实验六 实验测验 一:测验内容和要求 测试需要完成以下几个步骤: 配置好以下网络图;占总分10%(缺少一个扣一分)根据下面图配置好对应的IP和网关以及路由等相关配置,保证设备之间连通正常;占总…

数据结构经典测试题4

1. #include <stdio.h> int main() { char *str[3] {"stra", "strb", "strc"}; char *p str[0]; int i 0; while(i < 3) { printf("%s ",p); i; } return 0; }上述代码运行结果是什么&#xff1f; A: stra strb strc B: s…