我想将路径“ content:// media / external / images / media / 138501”转换为File并在Image中设置。
代码:
File imageFile = File("content://media/external/images/media/138501");
无法使用:
DecorationImage(image: ExactAssetImage(imageFile.path),fit: BoxFit.fill)
答案 0 :(得分:0)
您可以使用Image.file
构造函数。
DecorationImage(
image: Image.file(File("content://media/external/images/media/138501")),
fit: BoxFit.fill
)
请注意:在Android上,这可能需要android.permission.READ_EXTERNAL_STORAGE
权限。
答案 1 :(得分:0)
我得到了答案。我们可以使用ByteData来创建File。我们可以使用以下方法从ByteData获取文件:
Future<File> writeToFile(ByteData data, String path) {
final buffer = data.buffer;
return new File(path).writeAsBytes(
buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
}
path =您可以使用库“ path_provider”
字符串dir =(等待getApplicationDocumentsDirectory())。path;
有关更多详细信息,您可以检查: https://medium.com/@wangdazhitech/flutter-read-asset-file-and-write-to-app-path-42115d4ec1b6
答案 2 :(得分:0)
您可以使用Absolute path插件。
final filePath = await FlutterAbsolutePath.getAbsolutePath(uriString);
,然后使用Image.file
显示图像:
Image.file(
File(filePath),
);
答案 3 :(得分:0)
使用flutter_absolute_path软件包。 flutter_absolute_path:^ 1.0.6在pubsec.yaml中
要从此格式转换文件路径:“content://media/external/images/media/5275”
要
"/storage/emulated/0/DCIM/Camera/IMG_00124.jpg”
final filePath = await FlutterAbsolutePath.getAbsolutePath("Any path
here");
File tempFile = File(filePath);
if (tempFile.existsSync()) {
//add your logic here.
}