我需要在我的flutter应用程序中使用一些密度特定的图像,但是不幸的是,在加载它们时遇到了问题。
我根据官方文档https://flutter.dev/docs/development/ui/assets-and-images创建了几个用于存储图像的密度特定目录,编辑了pubscpec.yaml并编写了一些代码。
资产:
/assets
/images
/1.0x
/qr_logo.png
/1.5x
/qr_logo.png
/2.0x
/qr_logo.png
/3.0x
/qr_logo.png
/4.0x
/qr_logo.png
pubspec.yaml:
flutter:
uses-material-design: true
assets:
- assets/images/
- assets/strings/uk.json
- assets/strings/ru.json
代码:
GestureDetector(
child: Container(
width:120,
height: 40,
decoration: BoxDecoration(
color: Colors.black,
image: DecorationImage(
image:AssetImage('assets/images/qr_logo.png'),
fit:BoxFit.cover
),
)
),onTap:(){
print("CLICKED!");
})
这导致: 以下声明被抛出以解析图像编解码器: 无法加载资产:assets / images / qr_logo.png
引发异常时,这是堆栈:
0 PlatformAssetBundle.load(包:flutter / src / services / asset_bundle.dart:221:7)
1 AssetBundleImageProvider._loadAsync(package:flutter / src / painting / image_provider.dart:464:44)
2 AssetBundleImageProvider.load(包:flutter / src / painting / image_provider.dart:449:14) ...
图片提供者:AssetImage(包:null,名称:“ assets / images / qr_logo.png”) 图片键:AssetBundleImageKey(绑定:PlatformAssetBundle#5e64b(),名称:“ assets / images / qr_logo.png”,比例尺:1.0)