2

我必须下载远程图像并将其显示在 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');
});

此警报从未显示。

网址是:

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

并且图像是png。

我在 Appcelerator 问答中的问题

编辑:

这会导致问题吗?

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

4

1 回答 1

1

我已经尝试实现您的示例,并且在 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!

于 2015-09-08T09:06:55.733 回答