【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解

GeorgeGcs
• 阅读 2

##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#

一、前言 目前的鸿蒙开发者,大多数是从前端或者传统移动端开发方向,转到鸿蒙应用开发方向。 前端开发同学对于开发范式很熟悉,但是对于工作流程和开发方式是会有不适感,其实移动应用开发与前端开发,最大的区别就在于UI适配和性能优化上了。 今天我们就来分析下鸿蒙中UI适配的规范与小窍门。 二、 鸿蒙中vp、px、fp 是什么? 刚接触鸿蒙的同学,对于px像素肯定是很熟悉,但是对vp和fp都是一脸懵逼,不知道干嘛用的,可能只是被代码规范要求或者老人技术指导强调: “fp用于字体大小,vp用于UI数值,千万不要在UI里用像素px设置控件。” 但是原理却不是很清楚。

今天就给大家详细来分析一下其中的缘由。

  1. vp 其实vp的概念很简单,vp是屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,具有一定的逻辑比例数值。 因为vp在多种设备上不会变形,有一致的视觉体量。当前鸿蒙API接口数值不带单位时,默认单位都为vp,可见这是官方推荐的数值单位。
  2. fp 而fp的概念与vp类似,在鸿蒙系统中也是适用屏幕密度变化,随系统字体大小设置变化。是专门用于字体像素的单位。
  3. px 像素px是我们移动开发的老熟人了。从产品给的原型图,到UI设计给的效果图设计图,单位基本都是px,有时候我们会转成dp进行比例使用。而在鸿蒙开发中,为了适配多种设备,不同的屏幕像素密度,也有类似于dp的概念,就是综上所述的vp与fp。 因为在鸿蒙应用开发中,与安卓的现状相同,需要适配多种机型,不同的折叠手机。并且鸿蒙特性之一就是自由流程多端适配。一套代码,需要适配多种类设备显示。所以官方不建议使用屏幕像素单位px进行UI数值的设置。道理也很简单了,讲了很多遍,因为设备的屏幕像素密度不同,如果使用px会导致界面UI布局变形。 综上所述,在鸿蒙应用开发中,组件数值使用vp,字体大小使用fp。

如何将px转化为vp或者fp? 首先为什么需要转化呢?因为设计端源头,给的是像素单位,目前的设计软件还给不了vp和fp。所以我们只能将设计图上的像素进行数值转化。官方很贴心提供了十分方便的转化函数:px2vp px2fp

不过最新的api进行了更新,大家需要格外注意。直接使用vp2px/px2vp/fp2px/px2fp/lpx2px/px2lpx可能存在UI上下文不明确的问题,建议使用getUIContext()获取UIContext实例,再使用UIContext下的px2vp,px2fp等等绑定实例的接口。 代码示例,例如:

// 建议使用: this.getUIContext().px2vp() .width(px2vp(200)) 三、UI开发规范的参考

  1. UI设计人员根据效果图切图之前,开发人员需要提前沟通好,确认以下信息:切图样式,图标是否镂空,图标是否有白边,图标宽高尺寸等。
  2. 设计人员切图提供后,开发人员需要明确切图是否OK,进行切图资源的review,方式后续返工,明确符合开发需要。
  3. 控件尺寸: 开发人员将px尺寸,使用px2vp(value : number) : number,将px单位的数值转换为以vp为单位的数值。
  4. 字体大小: 开发人员将px尺寸,使用px2fp(value : number) : number,将px单位的数值转换为以fp为单位的数值。
  5. Color 颜色: 尽量使用既有枚举格式:Color.Black,Color.White等。若没有,需要UI人员提供标注的16进制颜色。例如:‘#FFFFFF’。
  6. UI自测: 应用开发人员自测比对与效果图的尺寸,验证完成后进行UI联调。
  7. UI联调: 开发人员将APP UI提测。设计通过流水线,获取功能界面截图,将截图发给UI,UI联调比对效果是否有问题。静态图通过联调后,UI会看动态多设备交互效果,验证是否有问题。
点赞
收藏
评论区
推荐文章
GeorgeGcs GeorgeGcs
13小时前
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
【HarmonyOS5入门系列】鸿蒙HarmonyOS示例项目讲解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言:移动开发声明式UI框架的技术变革在移动操作系统的发展历程中,UI开发模式经历了从命令式到声明式的重大变革。根据
GeorgeGcs GeorgeGcs
13小时前
【HarmonyOS 5】AttributeModifier和AttributeUpdater区别详解
【HarmonyOS5】AttributeModifier和AttributeUpdater区别详解\鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、AttributeModifier和AttributeUpdater的定义和作用1
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言图(11)HarmonyOS系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。其核心能力包括:扫描合同、票据、会议记录并保存为PDF分享。拍摄课堂PPT、书
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在HarmonyOS5的应用开发模型中,featureAbility是旧版FA模型(FeatureAbility)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】鸿蒙mPaaS详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、mPaaS是什么?mPaaS是MobilePlatformasaService的缩写,即移动开发平台。蚂蚁移动开发平台mPaaS,融合了支付宝科技能力,可以为移动应用开发、测试、运营及
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】桌面快捷方式功能实现详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在移动应用开发中,如何让用户快速触达核心功能,是目前很常见的功能之一。鸿蒙系统提供的桌面快捷方式(Shortcuts)功能,允许开发者为应用内常用功能创建直达入口,用户通过长按应用
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在HarmonyOS5的应用开发模型中,featureAbility是旧版FA模型(FeatureAbility)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文
GeorgeGcs GeorgeGcs
5小时前
【HarmonyOS 5】鸿蒙组件&模板服务详解 - 助力高效开发的利器
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在移动应用开发领域,效率与质量始终是开发者追求的核心目标。鸿蒙系统作为新兴的操作系统,为开发者提供了丰富且强大的开发资源,其中鸿蒙组件&模板服务更是成为开发者快速构建高质量应用的得
GeorgeGcs GeorgeGcs
5小时前
鸿蒙 6.0 引爆 AI 智能体革命:从交互重构到全场景智能觉醒,未来已至
【HarmonyOS5】鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言今天的华为开发者大会(2025HDC),全程看完,我只想说,震撼对于用户来说,一个未来场景的手机操作系统,正在诞生,从文本交互的操作转向自然语言,未来手机用
GeorgeGcs GeorgeGcs
3小时前
【HarmonyOS 5】鸿蒙Web组件和内嵌网页双向通信DEMO示例
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙金融类应用(金融理财一、前言在ArkUI开发中,Web组件(Web)允许开发者在应用内嵌入网页,实现混合开发场景。本文将通过完整DEMO,详解如何通过WebviewController实现ArkUI与内嵌网页
GeorgeGcs
GeorgeGcs
Lv1
男 · 金融头部企业 · 鸿蒙应用架构师
HarmonyOS认证创作先锋,华为HDE专家,鸿蒙讲师,作者。目前任职鸿蒙应用架构师。 历经腾讯,宝马,研究所,金融。 待过私企,外企,央企。 深耕大应用开发领域十年。 AAE,Harmony(OpenHarmony\HarmonyOS),MAE(Android\IOS),FE(H5\Vue\RN)。
文章
56
粉丝
1
获赞
2