像素转换,图片的大小尺寸定义为多大尺寸比较合理?应该放在什么标准的dpi中才能得到更好的适配效
像素转换
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
服务卡片的默认尺寸只能设置为2*2?我设置为1*2就报错了
6044浏览 • 5回复 待解决
Navigation和Tabs组件如何获取内容区域的尺寸
629浏览 • 1回复 待解决
ConstraintSize尺寸设置不生效
888浏览 • 1回复 待解决
以libstd为例,C++的标准库放在哪里了,有没有打到hap包中
631浏览 • 1回复 待解决
ijkplayer结合XComponent组件播放视频时根据视频尺寸和组件尺寸设置视频缩放模式
585浏览 • 0回复 待解决
image中是否能加载URL,想监听image尺寸
362浏览 • 1回复 待解决
监听获取应用启动时的窗口尺寸后,杀掉应用会报错
487浏览 • 1回复 待解决
如何处理webview显示元素尺寸过小
585浏览 • 1回复 待解决
一多断点怎么设置比较合理
640浏览 • 1回复 待解决
图片处理,应用开发中的图片开发是对图片像素数据进行解析、处理、构造的过程,达到目标图片效果
506浏览 • 1回复 待解决
图片压缩API的质量参数quality与图片原始大小、压缩后大小的关系
524浏览 • 1回复 待解决
这种多用户订阅多渠道消息流的逻辑如何实现比较合理呢?
1593浏览 • 1回复 待解决
postgresql 连接池一般为多大?
3033浏览 • 1回复 待解决
鸿蒙自定义Listcontainer中获取getComponentAt(i) 得到了null
6521浏览 • 2回复 待解决
使用Java写的Gradle工程无法适配为Hvigor工程吗?
1195浏览 • 1回复 待解决
getRawFileContent中输入的path应该怎么获取
185浏览 • 1回复 待解决
$r中的资源如何进行比较
603浏览 • 1回复 待解决
应用退出,是否可以执行自定义组件的退出动效
595浏览 • 1回复 待解决
ArkTS的编码规范是什么,能否在IDE里添加自定义格式化标准
723浏览 • 1回复 待解决
如何将像素点保存到图片文件
886浏览 • 1回复 待解决
求助,鸿蒙找不到图片质量压缩大小的api
4773浏览 • 1回复 待解决
自定义json资源文件需要放在工程的哪个目录下?用什么方式读取内容?
857浏览 • 2回复 待解决
json 如何转换成自定义的业务类对象
370浏览 • 1回复 待解决
json字符串与自定义class结构的转换
566浏览 • 1回复 待解决
自定义组件中如何添加图片?
1117浏览 • 1回复 待解决
对于很大一部分程序员用户来说,会比较纠结这些问题:图片的大小尺寸定义为多大尺寸比较合理?应该放在什么标准的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