-1

我正在尝试通过将每个图像转换为位图来将分辨率感知图像标记添加到谷歌地图:

static Future<BitmapDescriptor> makeBitmapDescriptor(String path) {
    return BitmapDescriptor.fromAssetImage(
        ImageConfiguration(), "assets/pinLocationIcons/house.png");
  }

从颤振文档中遵循了这种格式:

.../pinLocationIcons/house.png
.../pinLocationIcons/2.0x/house.png
.../pinLocationIcons/3.0x/house.png
...等。

它似乎不适用于android和ios。在我的 yaml 文件中,我尝试仅声明“.../image.png”并专门声明变体的每个目录/文件。但是,它继续使用 1x 图像。

我尝试像这样命名文件:

.../pinLocationIcons/house.png
.../pinLocationIcons/house@2x.png
.../pinLocationIcons/house@3x.png
...等。

这现在适用于 ios,但始终对 android 使用 1x 图像。我是否缺少一些可以使其同时适用于 ios 和 android 的东西?我的配置有问题吗?

4

2 回答 2

2

经过一番调查,事实证明我需要在用于制作位图的图像配置中声明设备像素比。

static Future<BitmapDescriptor> makeBitmapDescriptor(
      String path, BuildContext context) {
    return BitmapDescriptor.fromAssetImage(
      ImageConfiguration(devicePixelRatio: MediaQuery.of(context).devicePixelRatio,
      path,
    );
  }
于 2021-08-22T18:59:27.227 回答
1

如果您正在处理的项目有截止日期,我建议您手动查找资产路径。好像您已经按照https://flutter.dev/docs/development/ui/assets-and-images完成了所有工作

于 2021-08-22T15:07:17.220 回答