如何在Appcelerator Titanium中获取远程图像的高度和宽度

M R*_*ary 1 titanium appcelerator appcelerator-titanium

我发布以下示例代码请任何帮助我

var bb_CoverPageImage = Ti.UI.createImageView({
    width : '100%',
    image : '',
    categoryName : magazinePagesList[i].categoryName,
    lengthId : magazinePagesList.length,
});

bb_CoverPageImage.image = L('Site_URL_Images') + magazinePagesList[i].imagePreviewUrl.replace(/\s/g, '%20');    

coverScrollView.add(bb_CoverPageImage);
Run Code Online (Sandbox Code Playgroud)

Pra*_*ini 5

虽然您没有提到为什么需要远程图像的图像宽度/高度,但基本上有3种方法可以获得任何远程图像的宽度/高度.


解决方案1:

您可以要求后端开发人员为您提供图像宽度和高度作为单独的参数.


解决方案2:

你可以使用Ti.UI.ImageView的load事件等到你的图像被加载然后你可以使用类似这样的代码:

imageview.addEventListener('load', function(e) {
    var image = imageview.toBlob();
    var h = image.height;
    var w = image.width;
});
Run Code Online (Sandbox Code Playgroud)

此方法强制只有在ImageView中加载图像后才能获得宽度/高度.


解决方案3:

您可以使用Web服务下载图像并获取更多值:

var client = Ti.Network.createHTTPClient({
    onload: function(e) {
        var image = this.responseData;
        var h = image.height;
        var w = image.width;

        bb_CoverPageImage.image = image;
    },
    onerror: function(e) {}
});
client.open("GET", magazinePagesList[i].imagePreviewUrl);
client.send();
Run Code Online (Sandbox Code Playgroud)