如何在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/