google-maps - Flutter无法解码图像。提供的图像必须是位图。

标签 google-maps flutter dart maps google-maps-markers

在Google Map中快速创建自定义图标会显示错误。

我的pubspec.yaml文件

assets:
  - assets/truck.png

我的代码是:
void getCustomIcon() async {
    customIcon = await BitmapDescriptor.fromAssetImage(
        ImageConfiguration(
          devicePixelRatio: 2.5,
    ),
    'assets/truck.png');
}

错误是:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Failed to decode image. The provided image must be a Bitmap., null)
E/flutter (15757): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (15757): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)

最佳答案

在状态类中定义

BitmapDescriptor customIcon ;

调用initState
getBytesFromAsset('assets/truck.png', 64).then((onValue) {
      customIcon =BitmapDescriptor.fromBytes(onValue);

    });

功能在哪里
  static Future<Uint8List> getBytesFromAsset(String path, int width) async {
    ByteData data = await rootBundle.load(path);
    ui.Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List(), targetWidth: width);
    ui.FrameInfo fi = await codec.getNextFrame();
    return (await fi.image.toByteData(format: ui.ImageByteFormat.png)).buffer.asUint8List();
  }

然后在标记创建中
markers.add(
            Marker(
                markerId: ....,
                position: ....,
                icon: customIcon ,
                 onTap: () { 
                  ....

                }
            )

        );

关于google-maps - Flutter无法解码图像。提供的图像必须是位图。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111721/

相关文章:

java - 在android中找不到JSON解析运行时错误源

VSCode 中的 Flutter 未连接到 devtools

flutter - 在 TextField 小部件 : Flutter 中从下方剪切文本

flutter - 在 future builder 中使用列表构建器时 flutter 显示错误

flutter - 使用 StreamBuilder 制作动画

使用 Google map 的 Android 导航应用程序的 Java 与 HTML5

java - 将折线添加到 map 错误失败解决: Ljava/time/ZonedDateTime

flutter - 在 flutter 中从 Navigator.pushNamed 访问 block

flutter - 如何阻止 gridview.builder 在 flutter 中生成项目

javascript - 谷歌地图...手势处理在移动设备上不起作用