Uint8List为Flutter
Image小部件
Image.memory。(使用
Uint8List.fromList构造函数的转换
List到
Uint8List如果需要的话)。你可以用
base64.enpre走另一条路。
这是一些示例代码。
import 'dart:async';import 'dart:convert';import 'dart:typed_data';import 'package:flutter/material.dart';import 'package:http/http.dart' as http;void main() { runApp(new MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( theme: new ThemeData.dark(), home: new MyHomePage(), ); }}class MyHomePage extends StatefulWidget { @override State createState() => new MyHomePageState();}class MyHomePageState extends State<MyHomePage> { String _base64; @override void initState() { super.initState(); (() async { http.Response response = await http.get( 'https://flutter.io/images/flutter-mark-square-100.png', ); if (mounted) { setState(() { _base64 = base64.enpre(response.bodyBytes); }); } })(); } @override Widget build(BuildContext context) { if (_base64 == null) return new Container(); Uint8List bytes = base64.depre(_base64); return new Scaffold( appBar: new AppBar(title: new Text('Example App')), body: new ListTile( leading: new Image.memory(bytes), title: new Text(_base64), ), ); }}
但是,将大量二进制数据存储在数据库中通常是一个坏主意。它没有发挥Firebase实时数据库的优势,最终您将浪费带宽传输不需要的数据以及不必要的编码和解码。您应该改用
firebase_storage插件,在数据库中存储图像的路径或下载URL。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)