以下代码大部分都在使用,但有时在更改为blob后,图像视图不会显示图像。
//store in temp image view, convert to blob
imageViewTemp.image = "imagename.jpg"
blob = imageViewTemp.toBlob();
albumTitle = data[x].name + ' (' + numberPhotos + ')';
var row = Titanium.UI.createTableViewRow({
titleAlb : data[x].name,
width : '100%',
height : 'auto'
});
var image = Titanium.UI.createImageView({
top : 0,
left : 0,
width : '75',
height : '75'
});
var title = Titanium.UI.createLabel({
text : albumTitle,
top : 0,
left : 110,
width : 'auto',
height : 'auto'
});
var width = blob.width;
var height = blob.height;
//crop so it fits in image view
if (width > height) {
image.image = ImageFactory.imageAsCropped(blob, {
width : height,
height : height,
x : 60,
y : 0
});
} else {
image.image = ImageFactory.imageAsCropped(blob, {
width : (width - 1),
height : (width - 1),
x : 60,
y : 0
});
}
row.add(image);
row.add(title);
rows.push(row);
}
为了改变图像的尺寸,我使用的是一个名为image factory的模块。在我可以更改它之前,我必须将图像存储在一个临时图像视图中,然后我将其转换为blob:
blob = imageViewTemp.toBlob();
问题是在呈现屏幕后有时这不起作用:
image.image = ImageFactory.imageAsCropped(blob, {
width : height,
height : height,
x : 60,
y : 0
});
Othertimes会。
我在网上看到问题可能与帖子布局周期有关,但我不确定,或者如何继续
http://developer.appcelerator.com/question/174329/what-are-the-difference-between-toblob--toimage
所有帮助表示赞赏。
答案 0 :(得分:0)
解决了这个问题。
在将图像放入临时图像视图之前,必须首先使用REST API方法(GET)下载图像,否则将在文件完全下载之前呈现临时图像视图(.toImage是异步回调方法),为无用的blob和没有图像让路。
此方法的唯一问题是,您依赖于REST API调用而不会失败。