【问题标题】:Nativescript - how to display image from documents directory?Nativescript - 如何显示文档目录中的图像?
【发布时间】:2016-06-19 00:12:19
【问题描述】:

我正在构建一个主要用于离线使用的应用。 用户可以从 Web 下载图像,我可以在我的 Nativescript 应用程序的文档文件夹 (fs.knownFolders.documents()) 中看到上传的图像。

过去几个小时我一直在尝试在我的视图中显示下载的图像,但没有成功。

据我了解(可能是错误的),这与仅指定“~/myImage.jpg”的图像 src 不同。

虽然这不是我的确切应用,但它遵循相同的原则并给我们一些代码来验证。

ma​​in-page.js:

var observable = require("data/observable");
var imageSource = require("image-source");
var fs = require("file-system");

exports.pageLoaded = function() {

    var viewModel = new observable.Observable();
    http.getFile("https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png").then(function (r) {
        //the getFile downloads to the root documents path, shown below

        var folder = fs.knownFolders.documents();
        var path = fs.path.join(folder.path, "googlelogo_color_272x92dp.png");
        var image = imageSource.fromFile(path);
        //have also tried grabbing the image by id, and setting its src.

        viewModel.set("image", image);

    }, function (e) {
        //// Argument (e) is Error!
    });
    viewModel.set("image", null);

    page.bindingContext = viewModel;

}

ma​​in-page.xml:

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded">
    <StackLayout>
        <Image width="80" src="{{image}}" height="80" stretch="none" />
    </StackLayout>
</Page>

作为参考,我使用的是 tns javascript(不是 Angular)和 tns 版本 2.0.1。目前,我只关心 iOS。

非常感谢任何帮助!

【问题讨论】:

    标签: imageview nativescript


    【解决方案1】:

    试试这个:

    1) 使用http.getImage

    2) 通过其 ID 获取 Image 视图

    3) 将imageSource设置为getImage的响应

    4)保存文件

    http.getImage("https://www.google.ca/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png").then(function (r) {
            var imgview = page.getViewById("id_of_image_view");
            imgview.imageSource = r;
            var saved = imgView.imageSource.saveToFile(path,'jpg');
    
        }};
    

    【讨论】:

    • 我现在感觉很愚蠢——基本上我在这里唯一需要的就是imageSource 属性。从食谱文档中看不太清楚。
    • 你好。我正在尝试类似的东西,但是我正在使用打字稿。编译器抱怨“imageSource 不是视图的属性”。知道如何解决这个问题吗?
    • @xerotrophy 你的由page.getViewById 检索的字段必须强制转换为Imageconst img: Image = &lt;Image&gt;page.getViewById("id"); 没有强制转换,隐式类型是View,它不拥有你的错误消息已经记录的属性。
    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2015-08-27
    • 2014-08-19
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多