像素转换,图片的大小尺寸定义为多大尺寸比较合理?应该放在什么标准的dpi中才能得到更好的适配效

像素转换

HarmonyOS
2024-05-21 22:04:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
pfuchenlu

对于很大一部分程序员用户来说,会比较纠结这些问题:图片的大小尺寸定义为多大尺寸比较合理?应该放在什么标准的dpi中才能得到更好的适配效

HarmonyOS中,程序员可不必将时间和精力过多花费在此。在放置图片的media目录下也没有按照dpi来进行区分。

为了解决由于屏幕规格不同而引起的页面适配问题,HarmonyOS 提供了针对不同屏幕尺寸进行界面自适应适配的7种原子布局能力,使设计师可以使

能力来定义元素在不同尺寸的界面上的自适应规则。详见官方文档:https://developer.harmonyos.com/cn/docs/design/des-guides/layout-0000001111

HarmonyOS 重新定义了界面换算单位,使用虚拟像素作为一台设备针对应用而言所具有的虚拟尺寸,是定义应用内参数尺寸的度量单位。虚拟像素也

灵活使用和缩放的单位,它与屏幕像素的关系是 1vp 约等于 160dpi 屏幕密度设备上的 1px。在不同密度的设备之间,HarmonyOS 会针对性的转换设

实际像素值。

一、px

px:像素的单位,1px代表手机屏幕上的一个像素点。比如常见的手机分辨率有320×480,480×800,1080×1920等,这些数值的单位都是px;由于px在

上的大小不同,差别较大,适配性太差,不建议使用。

由于手机分辨率不同,应用中用到的图片某个固定尺寸大小的图片,或某个固定字号的文本就会因手机分辨力不同而出现失真或变形的情况,为了更好

同的手机,故而就有了不依赖与像素的单位sp与dp。

二、vp

vp:虚拟像素(virtual pixel)是一台设备针对应用而言所具有的虚拟尺寸(区别于屏幕硬件本身的像素单位)。

它提供了一种灵活的方式来适应不同屏幕

使用的核心API

三、fp

fp,font-size pixels,字体像素单位,其大小规范默认情况下与vp相同,但如果开发者在设置中修改了字体显示大小,就会在vp的基础上乘以 scale

认情况下 1 fp = 1vp,如果设置了字体显示大小,则会根据实际情况自动设置 1fp = 1vp * scale。

四、AttrHelper工具类

为了方便开发者对尺寸长度的管理,官方提供了AttrHelper工具类,可实现fp、vp、px之间的相互转换,简直不要太方便。以下是部分方法:

另外,除fp、vp、px的相互转换API以外,该工具类还提供了关于density、字体名称与其值等的转换方法,非常非常的贴心。详见官方文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/attrhelper-0000001054518726

核心代码解释

代码分析

实现效果

注明适配的版本信息

· IDE:DevEco Studio 4.0.1.501

· SDK:HarmoneyOS 4.0.10.11

分享
微博
QQ
微信
回复
2024-05-22 18:00:11
相关问题
ConstraintSize尺寸设置不生效
1117浏览 • 1回复 待解决
卡片开发支持多少种尺寸的卡片?
126浏览 • 2回复 待解决
如何处理webview显示元素尺寸过小
763浏览 • 1回复 待解决
一多断点怎么设置比较合理
688浏览 • 1回复 待解决
postgresql 连接池一般多大
3223浏览 • 1回复 待解决
$r资源如何进行比较
821浏览 • 1回复 待解决
如何将像素点保存到图片文件
1164浏览 • 1回复 待解决
求大佬告知如何获取设备dpi
762浏览 • 1回复 待解决