有没有办法在不事先将图像写入存储的情况下调整图像大小? 我正在使用一个 pdf 库,它的图像需要它的字节。 我所做的是使用 http.get 获取图像,然后获取将其放入 pdf 的字节。 问题是我需要在将图像放入 pdf 之前调整图像的大小。 我唯一拥有的是图像的网址或 uint8list ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我是 flutter 的初学者,我正在寻找一种简单的方法来刷新网络图像。
在这样的基本代码中,让颤振再次获取和绘制该图像的最简单方法是什么? 在我的代码中,图像是来自安全摄像头的快照,因此每次获取它时都会更改,但始终具有相同的 url。 每次启动应用程序时,我都会收到一张新图片,但我希望在按下图像本身时刷新图像。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var title = 'Web Images';
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Image.network('https://picsum.photos/250?image=9'),
),
);
}
}
使用有状态小部件扩展您的类,然后:
body: Inkwell(
onTap: ()=> setState(){};
Image.network('https://picsum.photos/250?image=9'),
),
这将刷新页面。 或者,如果您不想点击,则:
@override
void initState() {
super.initState();
setState(){
print('refreshing');
}
}
如果您需要强制图片刷新 - 试试这样的代码:
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var title = 'Web Images';
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: ForcePicRefresh(),
));
}
}
class ForcePicRefresh extends StatefulWidget {
@override
_ForcePicRefreshState createState() => _ForcePicRefreshState();
}
class _ForcePicRefreshState extends State<ForcePicRefresh> {
String url =
'https://www.booths.co.uk/wp-content/uploads/British-Flower-1x1-2-660x371.jpg';
Widget _pic;
@override
void initState() {
_pic = Image.network(url);
super.initState();
}
_updateImgWidget() async {
setState(() {
_pic = CircularProgressIndicator();
});
Uint8List bytes = (await NetworkAssetBundle(Uri.parse(url)).load(url))
.buffer
.asUint8List();
setState(() {
_pic = Image.memory(bytes);
});
}
@override
Widget build(BuildContext context) {
return InkWell(
child: _pic,
onTap: () {
_updateImgWidget();
},
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.