• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 页面级像素取整
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @Lichtschein-->
5<!--Designer: @lanshouren-->
6<!--Tester: @liuli0427-->
7<!--Adviser: @HelloCrease-->
8
9页面级像素取整的目标是将像素取整模式设为页面的上下文属性,以便在页面层面设置像素取整模式。
10
11>  **说明:**
12>
13> - 本模块从API version 18开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14> - 若出现像素取整[问题](ts-universal-attributes-pixelRoundForComponent.md#常见问题),且使用[组件级像素取整](./ts-universal-attributes-pixelRoundForComponent.md)无法解决时,建议尝试采用PIXEL_ROUND_AFTER_MEASURE模式。
15> - 在PIXEL_ROUND_AFTER_MEASURE模式下,组件会在测量大小结束时进行取整,即最终大小相比于PIXEL_ROUND_ON_LAYOUT_FINISH模式可能扩大1px。
16> - 页面级像素取整与组件级像素取整的区别在于:页面级像素取整调整整个页面的像素取整时机,而组件级像素取整调整特定组件在特定方向上的像素取整对齐方式。
17
18## setPixelRoundMode
19
20setPixelRoundMode(mode: PixelRoundMode): void
21
22设置当前页面的像素取整模式。
23
24**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
25
26**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
27
28**参数:**
29
30| 参数名      | 类型         | 必填   | 说明   |
31| -------- | ---------- | ---- | ---- |
32| mode | [PixelRoundMode](./ts-appendix-enums.md#pixelroundmode18)| 是    | 像素取整模式。<br />默认值:PixelRoundMode.PIXEL_ROUND_ON_LAYOUT_FINISH |
33
34**示例:**
35
36<!--code_no_check-->
37```ts
38// EntryAbility.ets
39import { UIContext } from '@kit.ArkUI';
40import { hilog } from '@kit.PerformanceAnalysisKit';
41
42onWindowStageCreate(windowStage: window.WindowStage) {
43   windowStage.loadContent('pages/Index', (err, data) => {
44      let uiContext :UIContext = windowStage.getMainWindowSync().getUIContext();
45      uiContext.setPixelRoundMode(PixelRoundMode.PIXEL_ROUND_AFTER_MEASURE);
46      if (err.code) {
47        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
48        return;
49      }
50      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
51    });
52  }
53```
54
55## getPixelRoundMode
56
57getPixelRoundMode(): PixelRoundMode
58
59获取当前页面的像素取整模式。
60
61**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
62
63**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
64
65**返回值:**
66
67| 类型         | 说明   |
68| ---------- | ---- |
69| [PixelRoundMode](./ts-appendix-enums.md#pixelroundmode18)| 当前页面的像素取整模式。|
70
71**示例:**
72
73<!--code_no_check-->
74```ts
75// EntryAbility.ets
76import { UIContext } from '@kit.ArkUI';
77import { hilog } from '@kit.PerformanceAnalysisKit';
78
79onWindowStageCreate(windowStage: window.WindowStage) {
80    windowStage.loadContent('pages/Index', (err, data) => {
81      let uiContext: UIContext = windowStage.getMainWindowSync().getUIContext();
82      console.info("pixelRoundMode : " + uiContext.getPixelRoundMode().valueOf());
83      if (err.code) {
84        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
85        return;
86      }
87      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
88    });
89  }
90```