dart - 如何在 Flutter 中加载超大图片?

标签 dart flutter

如何在flutter中加载一个巨大的位图?例如,我有一张 3000x3000 像素的图像,我需要在大小为 100x100 像素的图像小部件中显示它。在 android SDK 中,我可以使用 BitmapOption.inSampleSize 加载缩小图像。 Flutter SDK 中有类似的吗?

最佳答案

作为一个选项,您可以使用 ResizeImage 小部件:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: Home()));
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  ResizeImage img;

  @override
  void initState() {
    super.initState();
    img = ResizeImage(NetworkImage('https://picsum.photos/3000/3000'), width: 100, height: 100);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(body: Center(child: Image(image: img)));
  }
}

如果将此代码添加到 initState

img.resolve(ImageConfiguration()).addListener(ImageStreamListener((info, bool _)async {
  var data = await info.image.toByteData();
  print('==== ${img.width}   ${img.height}  ${data.buffer.asUint32List().length}');
}));

你会在日志中看到这一行

==== 100   100 10000

关于dart - 如何在 Flutter 中加载超大图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49490283/

相关文章:

flutter - 检测音量键按下时是否 flutter

routing - Dart 多服务器中的端口转发请求//隔离处理程序

dart - 如何居中对齐堆叠元素,以及如何水平拉伸(stretch)一个?

Flutter 网页图片复制粘贴

Flutter Firebase 通知问题 Android

flutter - 在 ListTile 中放置两个尾随图标

dart - 使用 Flutter,如何在 iOS 上触发 TextField 的 onSubmitted()?

flutter - flutter中的数据转换

Flutter 制作简单的 Facebook 菜单

与从 IDE 构建/运行相比,iOS 14 不允许 Flutter 应用程序(仍处于开发阶段)从主屏幕启动