我以整页模式显示从云存储加载的图像。我可以向图像URL提供参数以请求特定大小,例如匹配最长屏幕尺寸。这样,如果屏幕只有1334像素,我就不必加载1920px图像。我如何让屏幕大小作为参数传递?
iswrvxsc1#
您可以使用MediaQuery类沿着关联的MediaQueryData来确定屏幕大小并获取正确的图像。然后您可以将MediaQueryData.size成员与一些预定义的屏幕大小进行比较-这将为您提供逻辑像素数。例如,在小部件的构建方法中:
MediaQuery
MediaQueryData
MediaQueryData.size
class MyWidget extends StatelessWidget { Widget build(BuildContext context) { // retrieve the mediaQuery data final mediaQueryData = MediaQuery.of(context); if (mediaQueryData.size < const Size(100.0, 100.0)) { // build small image. } else { // build big image. } } }
xxslljrj2#
import 'package:flutter/material.dart'; class MyWork extends StatefulWidget { const MyWork({super.key}); @override State<MyWork> createState() => _MyWorkState(); } class _MyWorkState extends State<MyWork> { @override Widget build(BuildContext context) { int screenHeight = MediaQuery.of(context).size.height.toInt(); // remove .toInt() and convert type to double for extra precision int screenWidth = MediaQuery.of(context).size.width.toInt(); return Scaffold(body: Center(child: Text("$screenHeight, $screenWidth"))); } }
2条答案
按热度按时间iswrvxsc1#
您可以使用
MediaQuery
类沿着关联的MediaQueryData
来确定屏幕大小并获取正确的图像。然后您可以将MediaQueryData.size
成员与一些预定义的屏幕大小进行比较-这将为您提供逻辑像素数。例如,在小部件的构建方法中:
xxslljrj2#