OpenHarmony开发者论坛

标题: OpenHarmony3.2修改启动器源码实现动态壁纸初步方案 [打印本页]

作者: westinyang    时间: 2023-10-29 10:40
标题: OpenHarmony3.2修改启动器源码实现动态壁纸初步方案
[md]# 序言

本文提到的内容适用于 OpenHarmony 3.2,通过修改系统启动器源码实现动态壁纸的初步方案。其实在 OpenHarmony 4.0 中,官方接口也提供了新的修改壁纸的接口,包括动态壁纸设置。

# 源码修改

> 系统桌面仓库:https://gitee.com/openharmony/ap ... armony-3.2-Release/

- 在 `product/phone/src/main/ets/pages` 下新增一个 `DynamicWallpaper.ets`(除了放置Video组件外,我也尝试过Web组件用于加载网页作为壁纸,但是实际测试中Web组件无法正常加载,原因未知)

```js
import webview from '@ohos.web.webview'

@Component
export default struct DynamicWallpaper {
  webviewController: webview.WebviewController = new webview.WebviewController()
  videoController: VideoController = new VideoController()

  onPageShow() {
    this.videoController.start()
  }

  onPageHide() {
    // this.videoController.pause()
  }

  build() {
    Column() {
      /*Web({ src: $rawfile("index.html"), controller: this.webviewController })
        .zoomAccess(false)
        .mediaPlayGestureAccess(false)
        .horizontalScrollBarAccess(false)
        .verticalScrollBarAccess(false)
        .fileAccess(true)
        .domStorageAccess(true)
        .databaseAccess(true)
        .javaScriptAccess(true)
        .width('100%')
        .height('100%')*/

      Video({
        src: $rawfile('video1.mp4'),
        currentProgressRate: PlaybackSpeed.Speed_Forward_1_00_X,
        controller: this.videoController
      })
        .width('100%')
        .height('100%')
        .loop(true)
        .autoPlay(true)
        .controls(false)
    }
    .width('100%')
    .height('100%')
  }
}
```

- 在 `product/phone/src/main/resources/rawfile` 下面新增 `video1.mp4`
- 修改:`product/phone/src/main/ets/pages/EntryView.ets`,在 `Stack()` 布局中加入  `DynamicWallpaper()` (Stack层叠布局中,元素可以重叠的布局,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置)

```js
import DynamicWallpaper from './DynamicWallpaper';

......

build() {
  Stack() {
    DynamicWallpaper()

    ......
  }
  .backgroundImage(StyleConstants.DEFAULT_BACKGROUND_IMAGE)
  .backgroundImageSize(ImageSize.Cover)
  .backgroundImagePosition(Alignment.Center)
  .width('100%')
  .height('100%')
}
```
# 持续关注

- OHOS Dev:[https://gitee.com/ohos-dev](https://gitee.com/ohos-dev) `OpenHarmony开源项目组织,为OpenHarmony的未来而创建,Peace & Love`
- BiliBili:[https://space.bilibili.com/74433635](https://space.bilibili.com/74433635) `投稿OpenHarmony探索研究、应用开发和相关技术教程`
  

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5