openharmony-界面适配

ops/2024/9/23 23:36:27/

1. 像素单位

参考:像素单位-公共定义-ArkTS组件-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者 (huawei.com)

鸿蒙方舟框架为开发者提供了4种像素单位,即:px、vp、fp、lpx。并且框架采用vp为基准数据单位。类似Android分字符大小和控件大小单位,以及逻辑大小单位。但是更倾向于鸿蒙多窗口适配类似网页适配。

  • vp是虚拟像素单位,其计算公式为:vp = px / (DPI / 160) 例如,如果设备的densityPixels为3.5,DPI为560,则1vp = 1px / (560 / 160) = 0.75px 
  • 可以使用px2vp()接口将px转换为vp。

  

  1. px (Pixels) :
  • 定义:px代表屏幕上的像素点,是手机屏幕分辨率的单位,即屏幕物理像素单位。
  • 特点:由于不同手机的屏幕大小和分辨率存在差异,px单位在不同手机上的实际大小也会有所不同,这导致了其适配性相对较差。
  • 适用场景:当设计需要与具体像素尺寸相关,或者在不同设备和屏幕分辨率上需要一致的表现时使用。在视网膜或高清屏幕上可能需要额外的考虑。
  1. vp (Viewport Percentage) :
  • 定义:vp是视口百分比单位,基于视口(即浏览器窗口)的宽度或高度,屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,当数值不带单位时,默认单位vp。在实际宽度为1440物理像素的屏幕上,1vp约等于3px。
  • 特点:它允许组件的大小根据视口的大小动态调整。
  • 适用场景:常用于响应式设计,确保组件在不同屏幕尺寸上保持相对大小。
  • 温馨提示:vp是默认像素单位。
  1. fp (Font Size Percentage) :
  • 定义:字体像素,是字体大小百分比单位,基于父元素的字体大小,与vp类似适用屏幕密度变化,随系统字体大小设置变化。
  • 特点:它允许组件的大小相对于父元素的字体大小进行调整。
  • 适用场景:在响应式设计中特别有用,可以确保组件与文本内容保持适当的比例。
  1. lpx (Logical Pixels) :
  • 定义:lpx是逻辑像素单位,用于解决不同设备分辨率和像素密度的问题,lpx单位为实际屏幕宽度与逻辑宽度(通过designWidth配置)的比值,designWidth默认值为720。当designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。
  • 特点:它基于设备的像素密度进行转换,以提供一致的视觉尺寸。
  • 适用场景:当需要确保组件在不同设备(如桌面、平板、手机等)上看起来一致时使用。

1.2.  系统提供的单位转化方法

2.自适应布局

主要布局有:线性布局 层叠布局 弹性布局 网格布局

3.响应式布局

栅格布局

媒体查询

参考:

常见布局开发指导-基于ArkTS的声明式开发范式-UI开发-基于ArkTS开发-开发 - 华为HarmonyOS开发者 (huawei.com)


http://www.ppmy.cn/ops/110498.html

相关文章

Spring Boot基础

项目创建 项目启动 请求响应 RestController 1.返回值处理 RestController:这个注解结合了Controller和ResponseBody的功能。它默认将所有处理请求的方法的返回值直接作为响应体内容返回,主要用于构建RESTful API。返回的数据格式通常是JSON或XML&…

鸡肉品质分级与分类系统源码分享

鸡肉品质分级与分类检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

Java数据结构应用(力扣题20. 有效的括号)

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

NIO详细解释

Java NIO 详解 Java NIO(New Input/Output)是Java 1.4引入的用于替代传统I/O(Java I/O)的一种新型I/O处理方式。NIO的目标是解决传统阻塞式I/O模型的性能瓶颈,提供更高效的I/O操作,特别是适用于需要高并发…

合宙Air201资产定位模组LuatOS:开机容易关机难?PWRKEY控制来帮忙

我们很多小伙伴已经学习了5期课程:hello world初体验、点灯、远程控制、定位应用、扩展功能,合宙Air201,如同我们一路升级打怪的得力法器,让开发愈发得心应手。 本期,我们将进一步学习合宙Air201应用示例——PWRKEY控…

探索数据结构:初入算法之经典排序算法

🔑🔑博客主页:阿客不是客 🍓🍓系列专栏:渐入佳境之数据结构与算法 欢迎来到泊舟小课堂 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 一、插入排序 步骤: 从第一个元素开…

医学数据分析实训 项目一 医学数据采集

项目一 医学数据采集 一、实践目的 了解医学数据的特点;熟悉常见的医学公共数据库的使用方法;掌握获取医学数据的方法; 二、实践平台 操作系统:Windows10 及以上Python 版本:3.8.x 及以上PyCharm 或 Anoconda 集成…

力扣最热一百题——矩阵置零

目录 题目链接:73. 矩阵置零 - 力扣(LeetCode) 题目描述 示例 提示: 解法一:采用标记数组遍历处理 Java写法: C写法: 优化 解法二:优化解法之标记变量 Java写法:…