HM-ArkUI设计时,px/vp/fp 三者单位的区别

本文介绍了在页面设计中,如何使用虚拟像素(VP)适应不同屏幕密度,以及字体像素(FP)作为更精确的单位。在鸿蒙开发中,由于一开多端的特性,推荐避免使用屏幕像素(PX)进行尺寸计算,以提高适配性,转而采用VP和FP单位。

页面设计时常见尺寸问题,解析如下:

VP(Virtual Pixel):虚拟像素,是一种相对于应用而言的虚拟尺寸单位。它提供了一种灵活的方式来适应不同屏幕密度的显示效果,使元素在不同密度的设备上具有一致的视觉体量。虚拟像素主要用于宽度和高度的计算。
FP(Font Pixel):字体像素,是字体大小单位。在默认情况下,字体像素的大小与虚拟像素相同,即1 FP = 1 VP。开发者可以在设置中修改字体显示大小,此时字体像素的实际显示大小会在虚拟像素的基础上乘以一个比例系数。字体像素主要用于字体大小的计算。
PX(Pixel):屏幕像素,是实际像素单位,用于表示屏幕上的像素点。1px代表手机屏幕上的一个像素点,常见的手机比如1080×1920 这个数值的单位都是px,由于px在不同手机上的大小不同,差别较大,适配性太差,不建议使用。

在鸿蒙开发中,鸿蒙应用是支持一开多端,适配多设备端显示,不建议使用屏幕像素单位进行宽度和高度的计算,因为不同设备的屏幕像素密度不同,导致适配性较差。

所以建议元素尺寸使用vp单位,字体大小使用fp单位。

由于没有直接关于这两个请求的具体信息,可从以下常见方面对比分析可能导致 `http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 报错而 `http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 不报错的原因: ### 请求路径与配置 - **后端路由配置**:后端可能未正确配置 `http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 对应的路由,导致请求无法被正确处理。而 `http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 有正确的路由映射。 - **路径书写错误**:`http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 可能存在拼写错误或路径层级问题,使得服务器无法找到对应的资源。 ### 请求方法 - **方法不匹配**:`http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 可能使用了错误的请求方法(如 POST 请求被配置为 GET 请求),而后端只支持特定的请求方法,导致报错。 ### 请求参数 - **参数缺失或错误**:`http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 请求可能缺少必要的参数,或者参数格式不符合后端要求。例如,后端要求某个参数为整数类型,而实际传入的是字符串。相比之下,`http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 的请求参数正确。 - **参数顺序问题**:某些后端接口对参数顺序有要求,如果 `http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 的参数顺序错误,可能导致报错。 ### 权限与认证 - **权限不足**:`http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 可能需要特定的权限才能访问,而当前请求没有提供有效的认证信息或权限不足。`http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 可能不需要特殊权限或当前请求已满足其权限要求。 ### 后端服务状态 - **服务异常**:处理 `http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 请求的后端服务可能出现故障、崩溃或资源耗尽等问题,导致无法正常响应请求。而处理 `http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 的服务运行正常。 ### 网络问题 - **跨域问题**:如果存在跨域请求,`http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList` 可能由于跨域配置不正确而报错。`http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList` 可能没有跨域问题或跨域配置正确。 ### 代码示例 以下是使用 JavaScript 的 `fetch` 方法发送请求并处理错误的示例: ```javascript // 发送 fa-pro-hm-audit 请求 fetch('http://localhost:8080/fa-pro-hm-audit/permitAudit/getPermitAuditList') .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return response.json(); }) .then(data => console.log('fa-pro-hm-audit data:', data)) .catch(error => console.error('fa-pro-hm-audit error:', error)); // 发送 fa-pro-dash 请求 fetch('http://localhost:8080/fa-pro-dash/noNoticeCreate/getNoticeList') .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return response.json(); }) .then(data => console.log('fa-pro-dash data:', data)) .catch(error => console.error('fa-pro-dash error:', error)); ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿花粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值