0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙应用px,vp,fp概念详解

HarmonyOS解决方案 来源:HarmonyOS解决方案 作者:HarmonyOS解决方案 2025-07-07 11:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

一、前言

目前的鸿蒙开发者,大多数是从前端或者传统移动端开发方向,转到鸿蒙应用开发方向。

前端开发同学对于开发范式很熟悉,但是对于工作流程和开发方式是会有不适感,其实移动应用开发与前端开发,最大的区别就在于UI适配和性能优化上了。

今天我们就来分析下鸿蒙中UI适配的规范与小窍门。

二、 鸿蒙中vp、px、fp 是什么?

刚接触鸿蒙的同学,对于px像素肯定是很熟悉,但是对vp和fp都是一脸懵逼,不知道干嘛用的,可能只是被代码规范要求或者老人技术指导强调:

“fp用于字体大小,vp用于UI数值,千万不要在UI里用像素px设置控件。”

但是原理却不是很清楚。
image.png

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

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
image.png

不过最新的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会看动态多设备交互效果,验证是否有问题。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    60

    文章

    2859

    浏览量

    45363
  • Harmony
    +关注

    关注

    0

    文章

    108

    浏览量

    3494
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙基础开发实战-(ArkTS)像素转换

    ”(系统默认为fp)。 像素转换页面 在像素转换页面,通过使用像素转换API,实现不同像素单位之间的相互转换功能。 // ConversionPage.ets // vp转换为px Row
    发表于 01-11 16:53

    Rayeager PX2开发板芯片详解

    `瑞芯微推出一款SOC芯片,基于双核Cortex-A9核心,主频1.4GHz,搭配GPU:Mali-400。初看上去与RK3066很相似,起初我并没有找到很多关于PX2芯片的资料,但是芯客网
    发表于 01-15 11:33

    css中的px、em、rem是什么

    css中的px、em、rem 详解
    发表于 05-21 14:03

    Button组件介绍和应用体验分享

    是一个按钮button"ohos:padding="20vp"ohos:top_margin="10px"
    发表于 03-14 12:31

    HarmonyOSAPP-RadioButton+RadioContainer体验与分享

    :text_size="18fp"/><DirectionalLayoutohos:height="400px"
    发表于 03-24 10:47

    HarmonyOS实战—Text组件宽高三种值的写法和颜色属性

    来的就不会再展示了3. vpfp具体的长度单位:pxvpfp。dp(安卓里面的单位,跟鸿蒙
    发表于 08-12 12:31

    #HarmonyOS征文# HarmonyOS实战—实现注册登录和修改密码页面

    1. 注册登录页面设置的要求如下: 新建项目:TextApplication上面的数值单位都是 px ,所以要转换成 vpfp在 1920*1080 分辨率下,1px = 1/3
    发表于 08-13 17:23

    鸿蒙c++模板开发详解

    鸿蒙c++模板开发详解
    发表于 09-11 15:28

    鸿蒙Java API中aafwk是什么概念?有什么用途?

    1、鸿蒙Java API中的说明中aafwk是什么概念?什么文档的缩写?用途是什么?如ohos.aafwk.ability2、和ohos.accessibility.ability这一类,没有aafwk的部分API有什么区别?
    发表于 05-13 10:06

    鸿蒙系统概念股谁最有潜力

    2021年6月2日,华为HarmonyOS 2及多款搭载HarmonyOS 2的新产品正式发布,华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,这是国产操作系统的一次冲刺,大家极为关注鸿蒙系统,鸿蒙系统发布当天也冲上热搜。在
    的头像 发表于 06-10 11:39 1w次阅读

    鸿蒙注册登录页面的实现步骤

    注册登录页面 设置的要求如下: 新建项目:TextApplication 上面的数值单位都是 px ,所以要转换成 vpfp 在 1920*1080 分辨率下,1px=1/3
    的头像 发表于 09-06 09:12 4241次阅读

    OpenHarmony像素单位

    ArkUI开发框架提供了 4 种像素单位供开发者使用,分别是: pxvpfp 和 lpx ,框架采用vp为基准数据单位。它们之间的区别如下表所示。
    的头像 发表于 08-31 08:23 1993次阅读
    OpenHarmony像素单位

    智能电网的概念及通信技术详解

    智能电网的概念及通信技术详解
    发表于 11-21 20:41 1749次阅读

    【HarmonyOS 5】鸿蒙星闪NearLink详解

    【HarmonyOS 5】鸿蒙星闪NearLink详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言
    的头像 发表于 07-11 18:24 1511次阅读
    【HarmonyOS 5】<b class='flag-5'>鸿蒙</b>星闪NearLink<b class='flag-5'>详解</b>

    【HarmonyOS 5】鸿蒙中的UIAbility详解(三)

    【HarmonyOS 5】鸿蒙中的UIAbility详解(三) ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 本文是
    的头像 发表于 06-14 22:32 490次阅读