Flutter iOS-mediaQuarry没有给出in像素

问题描述 投票:0回答:1

我正在编写一个新的flutter应用,在某个时候,我需要获取iOS设备的像素数。当我使用MediaQuery.of(context).size.width时,它会返回像素数除以3或2,具体取决于我使用的设备。

例如,在我的iPhone5s上,屏幕宽度假定为640像素,但是媒体查询返回了我320。在我的iPhoneXs上,宽度假定为1125像素,但是返回了我375。

我们如何解决该问题?我不确定,但是我听说苹果不是使用像素,而是使用点系统?可能相关...

ios iphone flutter dart ios-simulator
1个回答
0
投票

根据docsMediaQuery.of(context).size

[MediaQuery.of(context).size返回逻辑像素的媒体大小

逻辑像素在设备上的视觉尺寸大致相同。物理像素是设备上实际硬件像素的大小。每个逻辑像素的物理像素数由devicePixelRatio描述。

Flutter向您显示的是设备的逻辑像素。您可能正在寻找的(或称为640像素和1125像素)是设备的物理像素

要获取设备的物理像素,您应该尝试

var devicePhysicalPixelWidth = MediaQuery.of(context).size.width * MediaQuery.of(context).devicePixelRatio

简单来说,logical pixel width * device pixel ratio

© www.soinside.com 2019 - 2024. All rights reserved.