读取资产图像尺寸而不加载到内存中

时间:2019-09-26 15:53:49

标签: flutter flutter-layout

我正在尝试找出资产文件的尺寸(宽度和高度),但不将其加载到内存中,或者尽可能少地使用内存。

我正在做:

Image _mainMenuTable = Image.asset("images/main_menu_table.png");

但是这不会使小部件进入内存并将图像加载到内存吗?即使我不在任何地方显示它。

我还尝试创建一个AssetImage,我已经将其设置为Container的背景图像,但是我无法从中获取图像的尺寸。

有没有更好的办法Image.asset?这样,我确实可以动态获取宽度和高度,但是它将两次加载到内存中,不是吗?一次作为Image,一次作为AssetImage

免责声明:这是我进入Flutter的第二周,所以请保持温和,以防答案显而易见。

干杯!

1 个答案:

答案 0 :(得分:2)

您只需要使用dart:io包中的File类。 示例-

import 'dart:io';

void main(){
  var file = File('file_path');
  file.length().then((len) => print(len)); //prints bytes
}