gpt4 book ai didi

flutter - 在 Flutter 中显示来自互联网的图像

转载 作者:IT王子 更新时间:2023-10-29 07:17:00 28 4
gpt4 key购买 nike

我正在尝试从可能满足或不满足特定条件的 API 加载图像。如果这些标准成功,我想在屏幕上显示图像。看来我可以使用 NetworkImage 来加载它并检查属性,如果这些属性匹配,我会将图像添加到我的列表中。

但是,我不太明白如何将 NetworkImageImage.fromMemory 一起使用(我猜)

这段代码似乎让我完成了大部分工作(但在我调用 load 之后添加一个监听器似乎很可疑)。

  Future getImage() async {
var url = 'https://myapi.com/a37ni1.jpg';
var image = new NetworkImage(url);
var config = await image.obtainKey(new ImageConfiguration());
var load = image.load(config);

var listener = new ImageStreamListener((ImageInfo info, isSync) async {
print(info.image.width);
print(info.image.height);

if (info.image.width == 80 && info.image.height == 160) {
//skip
} else {

//Convert the NetworkImage to something I can use in an Image widget
}
});

load.addListener(listener);
}

有什么想法我可能在这里遗漏了什么吗?

最佳答案

这是一个例子,但我用了另一个 url 而不是你的

import 'dart:async';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: Text("Test")),
body: Container(
alignment: Alignment.center,
child: FutureBuilder<Widget>(
future: getImage(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return snapshot.data;
} else {
return Text('LOADING...');
}
},
),
),
),
);
}

Future<Widget> getImage() async {
final Completer<Widget> completer = Completer();

final url = 'https://picsum.photos/200/300';
final image = NetworkImage(url);
final config = await image.obtainKey(const ImageConfiguration());
final load = image.load(config);

final listener = new ImageStreamListener((ImageInfo info, isSync) async {
print(info.image.width);
print(info.image.height);

if (info.image.width == 80 && info.image.height == 160) {
completer.complete(Container(child: Text('AZAZA')));
} else {
completer.complete(Container(child: Image(image: image)));
}
});

load.addListener(listener);
return completer.future;
}
}

关于flutter - 在 Flutter 中显示来自互联网的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com