【问题标题】:Is it possible to use 2x assets on a 3x device in Flutter是否可以在 Flutter 中的 3x 设备上使用 2x 资产
【发布时间】:2021-12-01 01:43:18
【问题描述】:

我有一个 iOS 和 Android 应用,用 Flutter 编写。我有一个包含 png 文件的资产文件夹,以标准 Flutter 方式构建,包含 1.5x2x3x4x 子文件夹。

我已将此添加到pubspec.yaml

  assets:
    - assets/

这很好用。

但是对于一组特定的图像,我希望它们只有一个尺寸,比如2x,然后将它们缩放为其他尺寸。我知道这会使它们有点模糊,但对于那些特定的图像,这是可以的。

对于原生 iOS 开发,我可以只包含 2x 图像,iOS 会自动选择并缩放它们,例如在 3x 设备上。

有没有办法通过 Flutter 实现相同的目标?

如果我只是删除 3x 文件夹中的资产,我会在 3x 设备上遇到异常。

【问题讨论】:

  • 你有 2x 的 svg 图像吗?
  • 相关资产不适合矢量表示。

标签: flutter flutter-ios flutter-android


【解决方案1】:

更接近自动缩放的一种方法是根据我的测试来包含 1x 和 2x 资产。这似乎导致 Flutter 将 2x 资产也用于 3x 设备。

如果我在项目中只包含 2x 资产,它将在运行时失败并出现异常。如果我只包含 1x 资产,这些资产将被使用和缩放。如果我同时包含 1x 和 2x 资源,则将使用和缩放 2x 资源。

缩放的 2x 资源在 3x 设备 (iPhone X) 上以及使用 1x 资源时看起来明显不那么模糊。

【讨论】:

    【解决方案2】:

    请参考 Flutter 官方文档中的 link

    这里提供了以下示例,说明如何使用与图像标称分辨率相对应的数字标识符:

    .../my_icon.png
    .../2.0x/my_icon.png
    .../3.0x/my_icon.png
    

    【讨论】:

    • 当您拥有各种尺寸的资产时,我对默认方式了如指掌。当我尝试(可能失败)解释时,我特别想省略特定资产的 1x、3x 等尺寸。
    猜你喜欢
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2014-08-16
    • 2015-04-06
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多