如何处理不同大小的图标

时间:2018-12-15 18:51:06

标签: flutter

为iPhone开发时,在Xcode / Swift中有一个资产文件,您可以在其中添加应用程序将使用的1、2和3x大小的所有图标。我可能还不知道与Android类似的事情。

为Flutter开发时:

  • 您如何处理不同的屏幕分辨率以使用正确的图标大小?
  • 如果与Xcode / Swift相似,您将这些文件放在哪里以及如何获取它们?那么Android呢?

如果您知道教程或网页,请告诉我!我发现的唯一对象仅用于应用程序图标和启动屏幕。

谢谢

2 个答案:

答案 0 :(得分:2)

只需查看有关分辨率识别图像的官方文档即可。 这是基于设备像素比率的。

这里有一个有关文件结构的示例。

.audio-caption-background

这就是您必须将资产文件声明到 .../pubspec.yaml .../icons/heart.png .../icons/1.5x/heart.png .../icons/2.0x/heart.png

中的方式
pubspec.file

这是链接:https://flutter.io/docs/development/ui/assets-and-images#declaring-resolution-aware-image-assets

答案 1 :(得分:0)

要添加到@diegoveloper答案中。

某些插件(如google-maps)不符合该标准,因此要求您调用BitmapDescriptor.fromAsset('icons / heart.png'),该插件不会转换为正确的图像。在这种情况下,您可以通过首先使用here定义的BuildContext通过createLocalImageConfiguration从AssetImage获取正确的图像。然后使用此配置来解析正确的图像,如下所示:

ImageConfiguration config = createLocalImageConfiguration(context);
AssetImage('icons/heart.png')
   .obtainKey(config)
   .then((resolvedImage) {
       print('Name: ' + resolvedImage.onValue.name);
    });

总结

使用convention命名创建资产文件夹:

pathtoimages/image.png
pathtoimages/Mx/image.png
pathtoimages/Nx/image.png
pathtoimages/etc.

其中M和N是分辨率(2.0x)或主题(暗)。 然后将图像或所有图像作为

添加到pubspec.file中。
flutter:
  assets:
    - pathtoimages/image.png

flutter:
  assets:
    - pathtoimages/

根据所使用的库,使用AssetImage('pathtoimages / image.png')或将其解析为如上所述的实际文件名来加载图像。