变体和AssetImage在抖动中不起作用

时间:2019-09-03 11:58:43

标签: flutter dart

这是资产my_earth.jpg的文件夹结构。这是我用来获取资产的代码

DecoratedBox(
                decoration: BoxDecoration(
                  image: DecorationImage(
                    image:  AssetImage('assets/image/my_earth.jpg'),
                  ),
                ),
              )

这是我在pubspec.yaml中的资产声明

资产:     -资产/图片/     -资产/视频/

Q:仅显示主要资产,而不显示变体。主要资源的大小为10x10,当我在iPad Simulator中运行它时,它的大小为10x10。我认为它可能会选择变体(大小如下:16x16-> 1.0x,20x20 ---> 2.0x,29x29 ---> 3.0x等)。当我使用原始的1024x1024时,显示为1024x1024。对于如何利用此Asset Image Loader及其变体提供多设备支持,我感到困惑(因为ios需要1x(不推荐使用,因为现在几乎所有设备都支持Retina),2x和3x,而android需要dbpi文件夹中分发的4种格式的图像

请协助我了解我在做什么错?

1 个答案:

答案 0 :(得分:1)

AFAIK,没有开箱即用的规定来根据操作系统和设备类型指定资产路由。参考评论中的答案,这是答案:

您必须明确指定路径。我的意思是,您必须检测设备类型,屏幕尺寸等,然后指定确切的路径。例如,在我的一个应用程序中,我在资产目录中有三个json文件用于语言本地化。根据用户的选择,我指出了正确的路径

String jsonContent = await rootBundle
        .loadString("assets/locale/localization_${locale.languageCode}.json");