华为鸿蒙应用--欢迎页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.hqwc.cn/news/283135.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

饥荒Mod 开发(十):制作一把AOE武器

饥荒Mod 开发(九):物品栏排列 饥荒Mod 开发(十一):修改物品堆叠 前面的文章介绍了很多基础知识以及如何制作一个物品,这次制作一把武器,装备之后可以用来攻击怪物。 制作武器贴图和动画 1.1 制作贴图。 先准备一张武器的贴图&a…

【机器学习】梯度下降法:从底层手写实现线性回归

【机器学习】Building-Linear-Regression-from-Scratch 线性回归 Linear Regression0. 数据的导入与相关预处理0.工具函数1. 批量梯度下降法 Batch Gradient Descent2. 小批量梯度下降法 Mini Batch Gradient Descent(在批量方面进行了改进)3. 自适应梯度…

MATLAB图像处理技巧

MATLAB图片处理------动态绘图 1. 动态绘图2. XXXXX 1. 动态绘图 主要用到四个函数,分别为getframe、frame2im、rgb2ind以及imwrite: 1.getframe:获取当前绘图窗口的图片作为影片帧; 2.frame2im:从单个影片帧 F 返回索…

Eclipse 自动生成注解,如果是IDEA可以参考编译器自带模版进行修改

IDEA添加自动注解 左上角选择 File -> Settings -> Editor -> File and Code Templates&#xff1b; 1、添加class文件自动注解&#xff1a; ​/*** <b>Function: </b> todo* program: ${NAME}* Package: ${PACKAGE_NAME}* author: Jerry* date: ${YEA…

为什么在Android中需要Context?

介绍 在Android开发中&#xff0c;Context是一个非常重要的概念&#xff0c;但是很多开发者可能并不清楚它的真正含义以及为什么需要使用它。本文将详细介绍Context的概念&#xff0c;并解释为什么在Android应用中需要使用它。 Context的来源 Context的概念来源于Android框架…

FPGA设计与实战之时钟及时序简介1

文章目录 一、时钟定义二、基本时序三、总结一、时钟定义 我们目前设计的电路以同步时序电路为主,时钟做为电路工作的基准而显得非常重要。 简单的接口电路比如I2C、SPI等,复杂一点接口比如Ethernet的MII、GMII等接口,它们都有一个或多个时钟信号。 那么什么是时钟信号?它…

【JAVA-Day69】抛出异常的精髓:深度解析 throw、throws 关键字,优雅处理异常问题

抛出异常的精髓&#xff1a;深度解析 throw、throws 关键字&#xff0c;优雅处理异常问题 &#x1f680; 抛出异常的精髓&#xff1a;深度解析 throw、throws 关键字&#xff0c;优雅处理异常问题 &#x1f680;一、什么是抛出异常 &#x1f60a;二、如何抛出异常 &#x1f914…

桌面概率长按键盘无法连续输入问题

问题描述&#xff1a;概率性长按键盘无法连续输入文本 问题定位&#xff1a; 系统按键流程分析 图一 系统按键流程 按键是由X Server接收的&#xff0c;这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后&#xff0c;会转发到相应程序的窗口中。在窗…

将mjpg格式数转化成opencv Mat格式

该博客可以解决如下两个问题&#xff1a; 1、将mjpg格式数据转化成opencv Mat格式 2、v4l2_buffer 格式获取的mjpg格式数据转换成Mat格式。 要将 MJPEG 格式的数据转换为 OpenCV 的 Mat 格式&#xff0c;您可以使用 imdecode 函数。imdecode 函数可以将图像数据解码为 Mat 对象…

C语言预处理详解及其指令

预处理详解 1.预定义符号2.#define定义常量基本使用方法举例子如果在define定义的表示符后面加上分号会发生什么&#xff1f;用一下来解释 3. #define定义宏举例例1例2 4. 带有副作用的宏参数例如: 5. 宏替换的规则6. 宏函数的对比宏和函数的一个对比 7. #和##7.1 #运算符7.2 #…

chrome升级后,调试vue在控制台输出总是显示cjs.js

当前chrome版本120.0.6099.72 在vue中使用console.log输出时&#xff0c;总是显示cjs.js多少多少行&#xff0c;不能显示源文件名及行数 【解决方案】 打开控制台的设置 左侧找到“Ignore List”&#xff0c;取消勾选"enable Lgnore Listing"&#xff0c;并重启chr…

Python Django 连接 PostgreSQL 操作实例

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python Django 连接 PostgreSQL 操作实例&#xff0c;全文3500字&#xff0c;阅读大约10分钟 在Web开发中&#xff0c;使用Django连接到PostgreSQL数据库是一种常见的选择。…