2016-06-17 2 views
1

Я создаю приложение, которое в основном предназначено для использования в автономном режиме. Пользователь может загрузить изображение из Интернета, и я вижу, что загруженное изображение в папке документов (fs.knownFolders.documents()) в моем приложении Nativescript без проблем.Nativescript - как отображать изображение из каталога документов?

Я провел последние несколько часов, пытаясь отобразить это загруженное изображение в моем представлении без успеха.

Из того, что я понимаю (может быть неправильно), это отличается от того, как просто указать изображение src из «~/myImage.jpg».

Хотя это не мое точное применение, это следует тем же принципам и дает нам некоторый код для проверки.

основного 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; 

} 

и основного page.xml:

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

Для справки, я с помощью ТНС JavaScript (не угловая) , и tns версии 2.0.1. На данный момент я беспокоюсь только о iOS.

Любая помощь очень ценится!

ответ

1

Попробуйте это:

1) Используйте http.getImage

2) Захватите Image вид через его ID

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'); 

    }}; 
+0

I Теперь я чувствую себя довольно глупо - в основном единственное, что мне нужно было, это атрибут 'imageSource'. Это было не слишком ясно из документов поваренных книг. –

+0

@GeorgeHuber yah некоторые вещи не так ясны из документов ... –

+0

Привет. Я пытаюсь что-то подобное, но я использую машинопись. Компилятор жалуется, что «imageSource не является свойством представления». Любая идея, как обойти это? – xerotolerant

Смежные вопросы