如何在OpenHarmony应用侧获取屏幕DPI

系统 OpenHarmony
笔者之前分享过如何在设备侧修改屏幕 DPI,本文则介绍在OpenHarmony应用侧获取屏幕DPI。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

1、应用侧获取屏幕DPI 实现思路

如图这是笔者的两台OpenHarmony设备,左边汇思博SEEK100 sl8541e的DPI为213,右边润开鸿 DAYU200的DPI为240。

通过导入@ohos.display包来使用getDefaultDisplaySync()方法以获取屏幕 DPI值的方法。

import display from '@ohos.display';

@Entry
@Component
struct Index {
  @State displayClass: display.Display | null = null

  aboutToAppear(){
    try {
      this.displayClass = display.getDefaultDisplaySync();
      console.info('Test densityDPI:' + JSON.stringify(this.displayClass.densityDPI));
    } catch (exception) {
      console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception));
    }
  }

  build() {
    Row() {
      Column() {
        Text('屏幕DPI是'+JSON.stringify(this.displayClass.densityDPI))
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2、更改开发板的屏幕DPI(以DAYU200为例)

(1)方法一:更改源码编译烧录固件

在源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml文件中修改dpi,编译后烧录固件。

<!--Window display dpi, valid range is 80~640, use 0 if no configuration is requeired-->
    <dpi>240</dpi>

(2)方法二:发送display_manager_config.xml文件至设备etc/window/resources

OpenHarmony固件编译烧录进入设备后,display_manager_config.xml文件会被预编译打包至设备端etc/window/resources目录下,什么,为什么只有window/resources字段,因为ohos_prebuilt_etc就是把文件放进设备的etc文件夹。

foundation/window/window_manager/resources/config/BULID.gn文件如下,
下面代码的意思是源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml会真正安装在设备中的etc/window/resources文件位置,

ohos_prebuilt_etc("display_manager_config") {
  if (device_name == "rk3568") {
    source = "//foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml"
    install_enable = true
···
···
  relative_install_dir = "window/resources"
}

步骤如下:

# 进入sdk\版本号\toolchain输入cmd打开命令行,重新加载系统为可读写
hdc_std shell mount -o remount,rw /

# 替换/etc/window/resources中的display_manager_config.xml文件
hdc_std file send C:\Users\jjh\display_manager_config.xml /etc/window/resources

# 然后重启开发板让设置生效
hdc reboot

3、参考资料

  • https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-display.md。
  • https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/faqs-graphics.md。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2023-12-11 17:26:21

Launcher鸿蒙预安装应用

2023-12-11 17:30:52

预安装应用鸿蒙Launcher

2021-05-07 15:36:50

iOS隐藏应用程序

2019-03-29 13:38:51

Windows 10旋转屏幕

2018-11-16 09:50:46

Windows 10高分辨率屏幕截图

2022-04-25 09:00:46

npm包管理器

2009-01-30 09:12:11

SpringApplicationJavaWeb

2023-02-09 15:32:55

配置双网卡双网卡设置

2018-07-04 09:47:05

Windows 10Windows屏幕亮度

2019-02-22 15:40:50

Windows 10截取屏幕截图

2019-11-06 11:00:49

Windows 10屏幕截图Windows

2022-03-07 05:40:34

桌面LinuxKDE Plasma

2020-11-12 11:50:20

OpenHarmony

2019-03-12 10:10:44

Windows 10禁用屏幕截图

2022-03-31 09:00:00

边缘侧DNS缓存边缘计算

2023-03-16 15:37:48

像素密度触觉智能

2018-07-30 09:26:39

Windows 10Windows锁定屏幕

2019-07-26 15:10:49

Windows 10屏幕缓存Windows

2019-12-26 13:06:07

Windows 10旋转屏幕Windows

2022-03-02 16:08:31

Harmony应用开发鸿蒙
点赞
收藏

51CTO技术栈公众号