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```