Nativescript加载图像

Nativescript加载图像,nativescript,Nativescript,下面是我的场景:在我的主视图上,我正在加载一个项目列表。每个项目都有一个imageURL属性。我正在将图像组件绑定到ImageURL属性。一切工作正常,但在图像组件折叠期间,加载图像需要额外的一两秒钟。加载图像后,图像组件将正确显示。这会在呈现图像时在页面上产生不希望出现的偏移 相同的图像将在其他两个视图上渲染 处理这种情况的最佳实践是什么?我尝试加载base64字符串,而不是图像url,这很有效,但它显著降低了初始视图的加载速度 在视图之间导航时,如何预取图像并重用它们?我在看图像缓存模块,它

下面是我的场景:在我的主视图上,我正在加载一个项目列表。每个项目都有一个imageURL属性。我正在将图像组件绑定到ImageURL属性。一切工作正常,但在图像组件折叠期间,加载图像需要额外的一两秒钟。加载图像后,图像组件将正确显示。这会在呈现图像时在页面上产生不希望出现的偏移

相同的图像将在其他两个视图上渲染

处理这种情况的最佳实践是什么?我尝试加载base64字符串,而不是图像url,这很有效,但它显著降低了初始视图的加载速度

在视图之间导航时,如何预取图像并重用它们?我在看图像缓存模块,它似乎解决了确切的场景,但文档非常模糊,我发现的唯一示例并没有真正解决相同的场景。如果我正确理解了代码,这更多的是关于虚拟滚动。在我的例子中,我只有2-3个项目,所以滚动不是一个真正的问题

如果您有任何建议,我将不胜感激

谢谢。

你试过这个吗?

您可能需要为此使用社区插件。您还可以查看以下内容: 你试过这个吗?

您可能需要为此使用社区插件。您还可以查看以下内容:

所以经过一些研究,我想出了一个适合我的解决方案。以下是我所做的:

当应用程序启动时,我创建了一个全局变量,其中包含一个可观察对象列表 然后我进行了http调用以获取所有对象并将它们加载到全局变量中 在视图中,我将图像显示为Repeater项目模板的一部分:


所以经过一些研究,我想出了一个适合我的解决方案。以下是我所做的:

当应用程序启动时,我创建了一个全局变量,其中包含一个可观察对象列表 然后我进行了http调用以获取所有对象并将它们加载到全局变量中 在视图中,我将图像显示为Repeater项目模板的一部分:

您可以在中使用该插件。它是一个{N}插件,包装了流行的Fresco库,用于在Android上管理图像。该插件公开了一些功能,如:设置淡入长度、placehdler图像、下载失败时的错误图像、圆角、通过纵横比调整dinamic大小等。您可以参考自述文件中的高级属性的完整列表。此外,该插件还提供了一些有用的信息,可用于在从远程源检索图像时添加自定义逻辑

要使用插件,只需在应用程序的onLaunch事件中初始化插件,并调用.initialize函数:

var application = require("application");
var fresco = require("nativescript-fresco");

if (application.android) {
    application.onLaunch = function (intent) {
        fresco.initialize();
    };
}
之后,只需将FrescoDrawee放在页面中的某个位置,并设置其imageUri:

您可以在中使用该插件。它是一个{N}插件,包装了流行的Fresco库,用于在Android上管理图像。该插件公开了一些功能,如:设置淡入长度、placehdler图像、下载失败时的错误图像、圆角、通过纵横比调整dinamic大小等。您可以参考自述文件中的高级属性的完整列表。此外,该插件还提供了一些有用的信息,可用于在从远程源检索图像时添加自定义逻辑

要使用插件,只需在应用程序的onLaunch事件中初始化插件,并调用.initialize函数:

var application = require("application");
var fresco = require("nativescript-fresco");

if (application.android) {
    application.onLaunch = function (intent) {
        fresco.initialize();
    };
}
之后,只需将FrescoDrawee放在页面中的某个位置,并设置其imageUri:


谢谢你,内森。我去看看,谢谢你,内森。我来看看。Fresco只适用于Android吗?我需要能够同时处理Android和iOS。目前,nativescript fresco插件是Android特有的插件,因为它解决了在Android操作系统内存中管理图像的一些常见问题。在iOS上,本机“映像”组件在内存中更好地管理自己,因此您可以尝试开箱即用。当然,Fresco库还提供了其他功能,如fadein效果等,这在iOS端是不可用的。我们一直在寻找改进插件的方法,所以请在git回购问题部分留下您的建议。Fresco是否仅适用于Android?我需要能够同时处理Android和iOS。目前,nativescript fresco插件是Android特有的插件,因为它解决了在Android操作系统内存中管理图像的一些常见问题。在iOS上,本机“映像”组件在内存中更好地管理自己,因此您可以尝试开箱即用。当然,Fresco库还提供了其他功能,如fadein效果等,这在iOS端是不可用的。我们一直在寻找改进插件的方法,所以请放心 o在git回购问题部分留下您的建议。