2

リモート画像をダウンロードして ImageView に表示する必要があります。iOS では正常に動作しますが、Android では動作しません。画像のサイズは 190x190 で、iOS でも同じ URL が機能するため、URL は正しいです。これは私のコードです:

意見:

<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 Q&A での私の質問

編集:

これは問題を引き起こす可能性がありますか?

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();

いかなる種類の問題もありません: リダイレクトも、使用されているプロトコルの変更もありません! なんでもOKのようです。

あなたの問題はおそらく、イベントを発生させる操作のに EventListener を追加したことが原因です! 実際、イベント「ロード」がすぐに発生した場合、それをリッスンしているものは何もありません!!

問題がそれによって引き起こされていない場合でも、イベントを発生させる可能性のある行の前に常にEventListener を追加することを忘れないでください!

于 2015-09-08T09:06:55.733 に答える