√已解决
实际设置:
📱Phone : Mumu模拟器X
📳版本 :Android 12
📱尺寸 :1280 x 720
问题描述:
在Uniapp中,通过获取信息得到的实际尺寸与逻辑位像素不符,导致无法正常设置尺寸。
解决方案:
找官方问了一下,这里引用官方回答:
getSystemInfo 获取到的是与WebView一致的逻辑像素,你设置的模拟器是定义的物理像素, 他们之间的换算比例为devicePixelRatio。
也就是说,这个实际上应该是px和point直接的一个转换,这里可以去看下详细的百度解析,手机使用的分辨率是逻辑像素,而手机屏幕有个实际像素,这个像素之间会有个转换的倍率,就是getSystemInfo().devicePixelRatio。可能大佬们都知道,写给新手看的哈,毕竟这玩意笔记太少了。
实际解决流程:
- 使用plus.screen.getCurrentSize()获取实际的宽高。
- 使用获取到的宽高除以uni.getSystemInfoSync()获得的devicePixelRatio.
- 得到实际的宽高
(注意:此处单位是px,为APP端)