flatter iOS-MediaQuery.of(context).size.width不提供像素宽度
我正在编写一个新的flifter应用程序,在某个时候,我需要得到iOS设备的像素数。当我使用flatter iOS-MediaQuery.of(context).size.width不提供像素宽度,ios,iphone,flutter,dart,ios-simulator,Ios,Iphone,Flutter,Dart,Ios Simulator,我正在编写一个新的flifter应用程序,在某个时候,我需要得到iOS设备的像素数。当我使用MediaQuery.of(context.size.width)时,它返回像素数除以3或2,具体取决于我使用的设备 例如,在我的iPhone5s上,屏幕宽度假定为640像素,但媒体查询返回320像素。在我的iPhoneXs上,宽度应该是1125像素,但它返回375像素 我们如何解决这个问题?我不确定,但我听说苹果不是在用像素,而是在用点的系统?这可能与 根据forMediaQuery.of(contex
MediaQuery.of(context.size.width)时,它返回像素数除以3或2,具体取决于我使用的设备
例如,在我的iPhone5s上,屏幕宽度假定为640像素,但媒体查询返回320像素。在我的iPhoneXs上,宽度应该是1125像素,但它返回375像素
我们如何解决这个问题?我不确定,但我听说苹果不是在用像素,而是在用点的系统?这可能与 根据forMediaQuery.of(context.size)
MediaQuery.of(context).size
返回媒体的大小(以逻辑像素为单位)
逻辑像素在不同设备上的视觉大小大致相同。物理像素是设备上实际硬件像素的大小。每个逻辑像素的物理像素数由devicePixelRatio描述
Flatter向您显示的是设备的逻辑像素。您可能正在寻找的(或定义为640像素和1125像素)是设备的物理像素
要获取设备的物理像素,您应该尝试
var devicePhysicalPixelWidth=MediaQuery.of(context).size.width*MediaQuery.of(context).devicePixelRatio
简单来说,
devicePhysicalPixelWidth=逻辑像素宽度*设备像素比率