当前位置: 首页 > news >正文

华为鸿蒙应用--欢迎页SplashPage+倒计时跳过(自适应手机和平板)-ArkTs

鸿蒙ArkTS 开发欢迎页SplashPage+倒计时跳过,可自适应平板和手机

一、SplashPage.ts
import { BreakpointSystem, BreakPointType, Logger, PageConstants, StyleConstants } from '@ohos/common';
import router from '@ohos.router';@Entry
@Component
struct SplashPage {@StorageProp('currentBreakpoint') currentBreakpoint: string = 'sm';private breakpointSystem = new BreakpointSystem();private intervalId: number = 0;@State  countdownTime: number = PageConstants.DELAY_TIME;private splash: Resource[] = [$r('app.media.img_splash1'), $r('app.media.img_splash2'), $r('app.media.img_splash3')];// 获取min到max的随机正整数getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1) + min)}build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) {Button(this.countdownTime + "秒 跳过", { type: ButtonType.Capsule, stateEffect: true }).alignSelf(ItemAlign.End).margin({ top: $r('app.float.vp_thirty_two'), right: $r('app.float.vp_sixteen') }).onClick(() => {this.routerMain();})Column() {Image(this.splash[this.getRandom(0, 2)])  // 每次进入随机展示一张欢迎图片.width(new BreakPointType({sm: $r('app.float.splash_image_size'),md: $r('app.float.splash_image_size'),lg: $r('app.float.splash_image_size_lg')  // 手机和平板使用不同的图片宽度}).getValue(this.currentBreakpoint)).aspectRatio(PageConstants.IMAGE_ASPECT_RATIO).objectFit(ImageFit.Contain)}.justifyContent(FlexAlign.Start).alignItems(HorizontalAlign.Center).flexGrow(StyleConstants.FLEX_GROW).margin({ top: new BreakPointType({sm: $r('app.float.vp_hundred'),md: $r('app.float.vp_hundred'),lg: $r('app.float.vp_fifty')   // 手机和平板不同的margin}).getValue(this.currentBreakpoint) })Text($r('app.string.splash_desc')).fontColor($r('app.color.color_797979')).fontSize($r('app.float.small_font_size')).margin({ top: $r('app.float.vp_one'), bottom: $r('app.float.vp_one') })Text($r('app.string.splash_filings')).fontColor($r('app.color.color_797979')).fontSize($r('app.float.small_font_size')).margin({ top: $r('app.float.vp_one'), bottom: $r('app.float.empty_image_size') })}.height(StyleConstants.FULL_HEIGHT).width(StyleConstants.FULL_WIDTH).backgroundColor($r('app.color.page_background'))}// 倒计时countdown = () => {this.countdownTime -= 1;if (this.countdownTime == 0) {clearInterval(this.intervalId)this.routerMain();}}// 跳转首页routerMain = () => {router.replaceUrl({ url: PageConstants.MAIN_PAGE_URL }).catch((err: Error) => {Logger.error(JSON.stringify(err));})}aboutToAppear() {this.breakpointSystem.register();this.intervalId = setInterval(this.countdown, 1000);}aboutToDisappear() {this.breakpointSystem.unregister();clearInterval(this.intervalId);}
}

工具:BreakpointSystem, BreakPointType, Logger, PageConstants, StyleConstants等工具见:华为鸿蒙应用--底部导航栏Tabs(自适应手机和平板)-CSDN博客

http://www.lryc.cn/news/263524.html

相关文章:

  • spring MVC概述和土门案例(无配置文件开发)
  • 持续集成交付CICD:K8S 通过模板文件自动化完成前端项目应用发布
  • 【TB作品】51单片机 实物+仿真-电子拔河游戏_亚博 BST-M51
  • MyBatis ${}和#{}区别
  • 大型语言模型:RoBERTa — 一种稳健优化的 BERT 方法
  • webpack知识点总结(基础应用篇)
  • 监控k8s controller和scheduler,创建serviceMonitor以及Rules
  • 支持向量机 支持向量机概述
  • http -- 跨域问题详解(浏览器)
  • Java对接腾讯多人音视频房间回调接口示例
  • vp与vs联合开发-通过FrameGrabber连接相机
  • 音视频直播核心技术介绍
  • JNDI注入Log4jFastJson白盒审计不回显处理
  • FPGA实现腐蚀和膨胀算法verilog设计及仿真 加报告
  • 核和值域的关系:什么是矩阵的秩?
  • 【MyBatis Plus】Service Mapper内置接口讲解
  • 制作一个简单 的maven plugin
  • 基于linux系统的Tomcat+Mysql+Jdk环境搭建(三)centos7 安装Tomcat
  • Ubuntu环境下SomeIP/CommonAPI环境搭建详细步骤
  • maven 项目导入异常问题
  • 在 VMware 虚拟机上安装黑苹果(Hackintosh):免费 macOS ISO 镜像下载及安装教程
  • 国产ToolLLM的课代表---OpenBMB机构(清华NLP)旗下ToolBench的安装部署与运行(附各种填坑说明)
  • 串口通信(5)-C#串口通信数据接收不完整解决方案
  • 大数据分析岗是干什么的?
  • hadoop运行jar遇到的一个报错
  • 长短期记忆(LSTM)神经网络-多输入分类
  • 开启创意之旅:免费、开源的噪波贴图(noise texture)生成网站——noisecreater.com详细介绍
  • Android Studio问题解决:Gradle Download 下载超时 Connect reset
  • 【Python百宝箱】云上翱翔:Python编程者的AWS奇妙之旅
  • 抖音直播间websocket礼物和弹幕消息推送可能出现重复的情况,解决办法