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

基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)

在这里插入图片描述

前言:
典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条,其中状态栏和导航条,通常在沉浸式布局下称为避让区;避让区之外的区域称为安全区。

开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,从而使用户获得最佳的UI体验。

我们在前面三节中的播放器,都有顶部状态栏何底部导航栏,为此我们可以通过把应用设置为全屏来实现沉浸式播放的效果。

方法:

  • 窗口全屏布局方案:调整布局系统为全屏布局,界面元素延伸到状态栏和导航条区域实现沉浸式效果。当不隐藏避让区时,可通过接口查询状态栏和导航条区域进行可交互元素避让处理,并设置状态栏或导航条的颜色等属性与界面元素匹配。当隐藏避让区时,通过对应接口设置全屏布局即可。
  • 组件安全区方案:布局系统保持安全区内布局,然后通过接口延伸绘制内容(如背景色,背景图)到状态栏和导航条区域实现沉浸式效果。该方案下,界面元素仅做绘制延伸,无法单独布局到状态栏和导航条区域,针对需要单独布局UI元素到状态栏和导航条区域的场景建议使用窗口全屏布局方案处理。

代码:


// 这里是ArkTS代码,写TS是为了代码有颜色效果import AbilityConstant from '@ohos.app.ability.AbilityConstant';  
import hilog from '@ohos.hilog';  
import UIAbility from '@ohos.app.ability.UIAbility';  
import Want from '@ohos.app.ability.Want';  
import window from '@ohos.window';  
import { BusinessError } from '@kit.BasicServicesKit';  export default class EntryAbility extends UIAbility {  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');  }  onDestroy(): void {  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');  }  onWindowStageCreate(windowStage: window.WindowStage): void {  // Main window is created, set main page for this ability  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');  windowStage.loadContent('pages/Index', (err) => {  // 设置全屏  let windowClass:window.Window = windowStage.getMainWindowSync();  windowClass.setWindowLayoutFullScreen(true)  .then(()=>{  console.info("plumcarefree Successfully set Full Window")  })  .catch((err:BusinessError)=>{  console.error("plumcarefree Nosuccessfully set Full Window")  })  if (err.code) {  hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');  return;  }  hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');  });  }  onWindowStageDestroy(): void {  // Main window is destroyed, release UI related resources  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');  }  onForeground(): void {  // Ability has brought to foreground  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');  }  onBackground(): void {  // Ability has back to background  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');  }  
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微软 Azure AI 服务免费试用及申请:语音识别、文本转语音、基于视觉、语言处理、文档分析等10大场景
  • EP12 分类列表元素点击跳转
  • 医学数据分析实训 项目一 医学数据采集
  • 深入解读Docker核心原理:Namespace资源隔离机制详解
  • SPDK 部署NVMe over TCP
  • golang学习笔记19——golang做服务发现与注册的深度剖析
  • PHP在现代Web开发中的高效应用与最佳实践
  • 【C++】模拟实现string类
  • LabVIEW重构其他语言开发的旧系统
  • 个人hic分析流程搭建4—compartment模块分析
  • 切线空间:unity中shader切线空间,切线矩阵,TBN矩阵 ,法线贴图深度剖析
  • 基于人工智能的自动驾驶系统项目教学指南
  • 三星ZFlip5/ZFlip4/W7024刷安卓14国行OneUI6.1系统-高级设置-韩/欧/港版
  • StreamReader 和 StreamWriter提供自动处理字符编码的功能
  • AI+摄影:行业变革与创新机遇
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【Leetcode】104. 二叉树的最大深度
  • 2018一半小结一波
  • CSS盒模型深入
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ESLint简单操作
  • Git 使用集
  • JavaScript设计模式之工厂模式
  • Laravel 中的一个后期静态绑定
  • leetcode388. Longest Absolute File Path
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • mongodb--安装和初步使用教程
  • Redis在Web项目中的应用与实践
  • underscore源码剖析之整体架构
  • use Google search engine
  • 编写高质量JavaScript代码之并发
  • 分享几个不错的工具
  • 基于web的全景—— Pannellum小试
  • 三栏布局总结
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 通过几道题目学习二叉搜索树
  • 我感觉这是史上最牛的防sql注入方法类
  • 用Canvas画一棵二叉树
  • 用jquery写贪吃蛇
  • 你对linux中grep命令知道多少?
  • 2017年360最后一道编程题
  • ‌移动管家手机智能控制汽车系统
  • (1)(1.13) SiK无线电高级配置(六)
  • (70min)字节暑假实习二面(已挂)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (十六)串口UART
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (小白学Java)Java简介和基本配置
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原)本想说脏话,奈何已放下