Files
yifeng.yl 2e9702ec7b add file
2019-01-08 20:39:13 +08:00

52 lines
1.2 KiB
Dart

/*
* @Author: 一凨
* @Date: 2018-12-08 17:47:25
* @Last Modified by: 一凨
* @Last Modified time: 2018-12-08 20:09:32
*/
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'dart:typed_data';
import 'dart:ui' as ui;
class RawImageDemo extends StatefulWidget {
_RawImageDemoState createState() => _RawImageDemoState();
}
class _RawImageDemoState extends State<RawImageDemo> {
ui.Image _img;
@override
void initState() {
super.initState();
_loadImageByAsset('assets/images/food06.jpeg').then((_urlImage) {
setState(() {
_img = _urlImage;
});
});
}
// 注意这里必须使用ui.Image
Future<ui.Image> _loadImageByAsset(String asset) async {
ByteData data = await rootBundle.load(asset);
ui.Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List());
ui.FrameInfo fi = await codec.getNextFrame();
return fi.image;
}
@override
Widget build(BuildContext context) {
if (_img == null) {
return Container(
child: null,
);
}
return Container(
child: RawImage(image: _img),
);
}
}