在Flutter中获取屏幕尺寸信息是通过MediaQuery.of(context)来获取。

属性说明
size一个包含宽度和高度的对象,单位是dp(乘以密度就是你设备的像素)
devicePixelRatio密度(像素比)
textScaleFactor每个逻辑像素的字体像素数
platformBrightness主机平台当前亮度模式
viewInsets完全被系统UI(通常是设备的键盘)遮挡的显示部分
padding我们通常取上边刘海高度和下边导航高度
alwaysUse24HourFormat格式化时间时是否使用24小时格式
accessibleNavigation用户是否使用TalkBack或VoiceOver等辅助功能服务与应用程序进行交互
invertColors设备是否反转平台的颜色
disableAnimations平台是否要求尽可能禁用或减少动画
boldText平台是否请求使用粗体字体重绘制文本

具体代码如下:

//屏幕大小
Size mSize = MediaQuery.of(context).size;
//密度
double mRatio = MediaQuery.of(context).devicePixelRatio;
//设备像素
double width = mSize.width * mRatio;
double height = mSize.height * mRatio;

// 上下边距 (主要用于 刘海  和  内置导航键)
double topPadding = MediaQuery.of(context).padding.top;
double bottomPadding = MediaQuery.of(context).padding.bottom;

// 每个逻辑像素的字体像素数
double textScaleFactor = MediaQuery.of(context).textScaleFactor;
// 主机平台当前亮度模式
Brightness platformBrightness = MediaQuery.of(context).platformBrightness;
// 遮挡的显示部分
EdgeInsets viewInsets = MediaQuery.of(context).viewInsets;
// 上边刘海高度和下边导航高度
EdgeInsets padding = MediaQuery.of(context).padding;
// 格式化时间时是否使用24小时格式
bool alwaysUse24HourFormat = MediaQuery.of(context).alwaysUse24HourFormat;
// 用户是否使用TalkBack或VoiceOver等辅助功能服务与应用程序进行交互
bool accessibleNavigation = MediaQuery.of(context).accessibleNavigation;
// 设备是否反转平台的颜色
bool invertColors = MediaQuery.of(context).invertColors;
// 平台是否要求尽可能禁用或减少动画
bool disableAnimations = MediaQuery.of(context).disableAnimations;
// 平台是否请求使用粗体字体重绘制文本
bool boldText = MediaQuery.of(context).boldText;

标签: Flutter, 获取设备屏幕信息, Flutter获取屏幕大小, Flutter获取屏幕像素密度

添加新评论