首页 > 其他分享 >HarmonyOS Next开发学习手册——旋转屏动画增强

HarmonyOS Next开发学习手册——旋转屏动画增强

时间:2024-07-03 22:59:12浏览次数:3  
标签:动画 orientation 鸿蒙 Next HarmonyOS 开发 MNxiaona gitee display

在原旋转屏动画基础上,可配置渐隐和渐现的转场效果。

完整的代码示例和效果如下。

// xx.ets
import { display } from '@kit.ArkUI';

@Entry
@Component
struct rotation {
  @StorageLink('orientation') myOrientation: display.Orientation = display.Orientation.PORTRAIT;

  build() {
    Stack() {
      if (this.myOrientation == display.Orientation.PORTRAIT || this.myOrientation == display.Orientation.PORTRAIT_INVERTED) {
        Image($r('app.media.sky'))
          .size({ width: 100, height: 100 })
          .id('image1')
      } else {
        Image($r('app.media.tree'))
          .position({ x: 0, y: 0 })
          .size({ width: 200, height: 200 })
          .id('image2')
      }
    }
    .backgroundColor(Color.White)
    .size({ width: '100%', height: '100%' })
  }
}

需要在EntryAbility.ets文件的onWindowStageCreate方法中添加处理逻辑以获取屏幕的显示方向

onWindowStageCreate(windowStage: window.WindowStage): void {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    let mainWindow: window.Window;
    try {
      mainWindow = windowStage.getMainWindowSync();
      let displayClass: display.Display = display.getDefaultDisplaySync();
      AppStorage.setOrCreate('orientation', displayClass.orientation);
      // 监听窗口的windowsSizeChange事件,旋转屏时会触发该事件
      mainWindow.on('windowSizeChange', (data) => {
        console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data));
        let displayClass: display.Display | null = null;
        try {
          displayClass = display.getDefaultDisplaySync();
          console.info('display orientation is ' + JSON.stringify(displayClass.orientation));
          // 获取屏幕的显示方向
          AppStorage.set('orientation', displayClass.orientation);
        } catch {
          return;
        }
      })
    } catch {
      hilog.info(0x0000, 'testTag', '%{public}s', 'error');
      return;
    }

    windowStage.loadContent('pages/Index', (err) => {
      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.');
    });
}

需要在项目的 module.json5 文件中的 abilities 列表里添加 “orientation”,指定为 “auto_rotation”

"orientation": "auto_rotation",

鸿蒙全栈开发全新学习指南

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以要有一份实用的鸿蒙(HarmonyOS NEXT)学习路线与学习文档用来跟着学习是非常有必要的。

针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。

本路线共分为四个阶段

第一阶段:鸿蒙初中级开发必备技能

在这里插入图片描述

第二阶段:鸿蒙南北双向高工技能基础:gitee.com/MNxiaona/733GH

第三阶段:应用开发中高级就业技术

第四阶段:全网首发-工业级南向设备开发就业技术:gitee.com/MNxiaona/733GH

《鸿蒙 (Harmony OS)开发学习手册》(共计892页)

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发基础知识:gitee.com/MNxiaona/733GH

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

鸿蒙开发面试真题(含参考答案):gitee.com/MNxiaona/733GH

鸿蒙入门教学视频:

美团APP实战开发教学:gitee.com/MNxiaona/733GH

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing

    标签:动画,orientation,鸿蒙,Next,HarmonyOS,开发,MNxiaona,gitee,display
    From: https://blog.csdn.net/maniuT/article/details/140162691

相关文章

  • HarmonyOS Next开发学习手册——共享元素转场
    共享元素转场是一种界面切换时对相同或者相似的两个元素做的一种位置和大小匹配的过渡动画效果,也称一镜到底动效。如下例所示,在点击图片后,该图片消失,同时在另一个位置出现新的图片,二者之间内容相同,可以对它们添加一镜到底动效。左图为不添加一镜到底动效的效果,右图为添加一......
  • The Forest Enemy Pack(2D动画角色游戏模型)
    这个包包含14个适用于platformer和2drpg游戏的动画角色。动画总帧数:1785用于动画的所有精灵都具有透明背景,并准备有1500x1200和750x600两种尺寸。对于每个角色,你也可以找到具有单独身体部位的精灵表,这样你就可以轻松地制作自己的动画。它们有PNG和PSD格式。示例场景包含......
  • Vue canvas绘制圆形进度条动画加载
    父组件代码:<template> <!--创建--> <divclass="resource-warp-box">  <divclass="center-box">   <divclass="used-source">    <pageTitletitle="已用资源"/>    <div......
  • YOLOv5改进 | 主干网络 | ODConv + ConvNeXt 增强目标特征提取能力
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 ......
  • Next Terminal 一款简单开源轻量级堡垒机,Next Terminal使用详解-(值得收藏)
    1.安装部署:NextTerminal一款简单开源轻量级堡垒机,宝塔Docker安装部署教程一、NextTerminal介绍前沿:NextTerminal是一款开源的轻量级堡垒机与交互审计系统,旨在提供一个集中的、安全的远程访问解决方案,适用于管理不同协议下的服务器与设备。它通过一个统一的Web界......
  • html+css3实现超级充电动画
    图例  源码在图片后面,有HTML和CSS个部分 源代码HTML<!doctypehtml><html><head><metacharset="utf-8"><title>PureCSS超级充电器</title><linktype="text/css"href="css/style.css"rel="stylesheet&quo......
  • HarmonyOS 开发探索: ArkUI常用样式布局
     ArkUI布局简介ArkUI支持多种布局方式,包括但不限于Column、Row、Stack、Flex等。这些布局方式能够满足不同的UI设计需求,帮助开发者高效地创建复杂的界面。1.Column布局Column布局用于垂直排列子组件,适用于需要纵向排列元素的场景。它在创建列表、表单等界面时非常实用。@......
  • css3动画实现数字动态增加
    要实现数字的动态增加效果,可以使用CSS3的@keyframes规则来创建动画,并使用JavaScript来更新数字。以下是一个简单的实现示例:HTML:<divid="counter"class="counter">0</div>CSS:.counter{/*初始样式*/}@keyframesincreaseNumber{from{opacity:0;transfo......
  • NextJS 开发指南
    0x01概述(1)基本信息NextJS官网:https://nextjs.org/NextJS是一个轻量级的React服务端渲染(SSR)应用框架TheReactFrameworkforProductionAfull-stackframeworkforReactJSNextJS解决了常见问题使构建React应用更加容易NextJS基于React框架:React18(2)主......
  • 用python代码实现超级玛丽游戏(详细动画展示+源码分享)
    效果展示:温馨提示:篇幅有限,完整代码已打包文件夹,获取方式在:1.画面和角色的导入创建屏幕、从图片中导入Mario#屏幕创建和初始化参数self.screen=pygame.display.set_mode((WIDTH,HEIGHT))self.rect=self.screen.get_rect()pygame.display.set_caption(TITLE)......