Android Titanium - ImageView 不显示远程图像

Android Titanium - ImageView doesn't show a remote image

我必须下载远程图像并将其显示在 ImageView 中。在 iOS 中完美运行,但在 Android 中不起作用。图片尺寸为 190x190,url 是正确的,因为 url 在 iOS 中同样有效。这是我的代码:

查看:

<ScrollView id="scrollView" showVerticalScrollIndicator="true">
   <Label id="titleLabel"></Label>
   <ImageView id="qr"></ImageView>

   <View id="codigoView">
      <Label id="codigoLabel"></Label>
      <Label id="numeroLabel"></Label>
   </View>

   <Button id="condicionesButton" onClick="condicionesAction"></Button>
   <Button id="localizacionButton" onClick="localizacionAction"></Button>
   <Button id="emailButton" onClick="emailAction"></Button>
</ScrollView>

风格:

"#qr":{
    top: 5,
    width: 190,
    height: 190
}

控制器:

var qrString = args.get('qrcode');
$.qr.image = Alloy.Globals.qr_url + qrString;

$.qr.addEventListener('load', function(e){
    alert('Picture loaded');
});

此警报从未显示。

url是:

https://api.qrserver.com/v1/create-qr-code/?size=190x190&data="akjlsdfkjalskdjfal"

图像是 png。

我在 Appcelerator 问答中的 question

编辑:

这会导致问题?

For Android, if there is a redirect and change in protocol, it will not follow. For example, from http to https and vice versa

我已尝试实施您的示例,在 iOS 和 Android 上一切正常!

这是index.xml(查看):

<Alloy>
    <Window class="container">
        <ImageView id="qr"/>
    </Window>
</Alloy>

这是index.js(控制器):

$.qr.addEventListener('load', function() {
    alert('picture loaded');
});
$.qr.image = "https://api.qrserver.com/v1/create-qr-code/?size=190x190&data=akjlsdfkjalskdjfal"
$.index.open();

没有任何类型的问题:没有重定向,使用的协议也没有变化!一切似乎都还好。

您的问题可能是由于您在可以触发事件的操作之后添加了事件监听器!事实上,如果事件 'load' 很快被触发,就没有任何东西在监听它!!

即使问题不是由此引起的,也请记住始终在可能触发事件的行之前添加 EventListener!