Android Titanium - ImageView不显示远程图像

时间:2015-09-08 08:03:55

标签: titanium-mobile appcelerator-mobile titanium-android

我必须下载远程图像并在ImageView中显示它。在iOS中完美运行但在Android中并不起作用。图像大小为190x190,网址正确,因为相同的网址在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');
});

此警报从未显示过。

网址是:

  

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

图像是png。

Appcelerator Q&amp; A中的question

修改

这会导致问题吗?

  

对于Android,如果有重定向和协议更改,则不会   跟随。例如,从http到https,反之亦然

1 个答案:

答案 0 :(得分:0)

我已尝试实施您的示例,并且在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();

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

您的问题可能是因为您可以在之后添加EventListener 可以触发事件的操作!的确,如果事件“加载”了很快就被解雇了,没有什么可以听的!

即使问题不是由此引起的,请记住在事先激活事件的行之前添加EventListener