You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何获取设备分辨率(非应用/浏览器分辨率)

获取设备原生分辨率(Flutter)

可以获取格式为$height*$width的设备原生分辨率,以下是两种实现方式:

原生Flutter实现

无需依赖第三方包,通过dart:ui库的window对象直接获取设备物理分辨率:

import 'dart:ui';

String getDeviceNativeResolution() {
  final physicalSize = window.physicalSize;
  return '${physicalSize.height.floor()}*${physicalSize.width.floor()}';
}

physicalSize返回的是设备硬件层面的原生分辨率,和应用窗口大小无关,能精准反映电脑、手机的真实屏幕参数。

第三方包辅助(可选)

如果需要统一多平台的设备信息获取逻辑,可使用device_info_plus包:

  1. 在pubspec.yaml添加依赖:
dependencies:
  device_info_plus: ^9.1.0
  1. 实现分辨率获取:
import 'package:device_info_plus/device_info_plus.dart';
import 'dart:io';
import 'dart:ui';

Future<String> getDeviceResolution() async {
  final deviceInfo = DeviceInfoPlugin();
  String resolution = '';
  
  if (Platform.isAndroid) {
    final androidInfo = await deviceInfo.androidInfo;
    resolution = '${androidInfo.screenHeight}*${androidInfo.screenWidth}';
  } else if (Platform.isIOS) {
    final iosInfo = await deviceInfo.iosInfo;
    resolution = '${iosInfo.screenHeight}*${iosInfo.screenWidth}';
  } else if (Platform.isWindows || Platform.isMacOS || Platform.isLinux) {
    final physicalSize = window.physicalSize;
    resolution = '${physicalSize.height.floor()}*${physicalSize.width.floor()}';
  }
  
  return resolution;
}

该包能简化移动端的设备信息调用,桌面端仍需借助dart:ui的原生能力获取物理分辨率。


内容的提问来源于stack exchange,提问作者Rami Dhouib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:48:09