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包:
- 在
pubspec.yaml添加依赖:
dependencies: device_info_plus: ^9.1.0
- 实现分辨率获取:
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
相关产品推荐
相关产品推荐

