8
votes

Android APP DISPLAY AFFICHAGE DE L'URL

Je cherche une fonction très basique. J'essaie de concevoir une application et tout ce que je veux qu'il fasse, c'est charger une image d'une URL. J'ai trouvé quelques questions et sites Web, mais ils semblent tous plus âgés et datés, mais ce que je pense avoir des problèmes liés à la liaison du code à l'activité principale.xml pour ImageView.

Toute suggestions ou liens que vous avez énormément appréciez, merci.


0 commentaires

4 Réponses :


12
votes

ici, voici comment j'affiche l'image de l'URL dans la vue Image
Vous devez appeler ce code à partir de thread autre que le fil principal xxx

soyez prudent N'oubliez pas d'entourer le code avec essayer (je l'ai déjà fait cela dans Ce code)

ou vous pouvez utiliser webview pour charger l'image de l'URL xxx

si vous essayez de charger l'image de l'URL des actifs Dossier commencera comme cette "Fichier: ///android_asset/yourimage.jpg"
sinon une url Internet normale comme celui-ci " http://0.tqn.com/d /webcliparart/1/0/5/1/4/floral-icon-5.jpg "

J'espère que cela fonctionne pour vous Bonne chance


15 commentaires

J'essaie de modifier votre message mais je pense que la réponse n'est pas encore mise à jour. Pouvez-vous mettre une note d'addition dans la réponse avec des polices audacieuses mentionnant que vous devez appeler ce code de fil autre que le fil principal.


Mais je ne l'ai pas appelé du fil et ça marche bien pour moi. Pouvez-vous s'il vous plaît clarifiez cela. Merci.


Android a maintenant une politique stricte sur une communication réseau. Vous devriez essayer ce code à nouveau. Le code que vous avez écrit peut prendre n'importe quel temps pour obtenir une image de l'URL distante en fonction de la vitesse du réseau et de la taille de l'image. Si vous appelez ce code à partir de l'interface utilisateur, il est possible que votre fil d'interface utilisateur soit bloqué et vous donnera ANR. Essayez ce code sur ICS si vous le pouvez. Il devrait probablement donner une exception "NetworkonMainThread". Ou vous pouvez simplement rechercher sur Google pour cette exception.


J'ai écrit deux réponses ci-dessus, j'espère que le thread est nécessaire pour la première réponse. J'ai mis à jour merci de vous remercier.


Pas de problème, oui le fil est nécessaire pour la première réponse. Dans webview, il est déjà manipulé pour vous.


J'ai utilisé le code que vous avez envoyé et il semblait qu'il y avait 2 supports manquants, donc je les ai ajoutés, et cela ne fait aucune erreur d'Eclipse. Cependant, la force d'application se ferme lorsqu'on courait, et je pense que c'est due au "fil principal", mais je ne sais pas comment aborder la question.


Quelle est la version Android que vous exécutez l'application? Le fil principal est nécessaire si vous l'exécutez sur un ICS (Android 4.0), sa fonctionnement bien fonctionne avec GB (Android 2.3) sans fil. Mais il est bon d'ajouter le fil.


J'ai changé la cible en 2.3 et j'ai toujours la même force de la même force.


Pouvez-vous s'il vous plaît poster votre code où vous avez ajouté mon codage.


Imageview img = (imageView) FOISTVIEDBYID (R.ID.ImageView1); Imageview img = (imageView) FOISTVIEDBYID (R.ID.ImageView1); {<----


Je veux que l'ensemble du code que vous avez codé à l'intérieur de l'essais attrape.


Tout ce que j'ai ajouté était le support, je n'ai rien changé d'autre. Modifier, je réalise ce que vous demandez maintenant, 1 instant.


Puis-je savoir où vous avez ajouté ces deux crochets? Parce que dans mon code, vous n'avez pas besoin d'ajouter des crochets supplémentaires, les supports que j'ai utilisés sont de joindre le bloc d'essai et de la capture seulement. Vérifiez également Avez-vous donné une autorisation sur Internet dans le manifeste Android


Laissez-nous Continuer cette discussion en chat


Httpget, httpclient, httpesponse, httpentité et bufferedhttpentiment ne sont pas automatiquement importés dans le studio Android et montrent en rouge. ( photos.google.com/share/... )



4
votes

Il y a une bibliothèque OpenSource appelée ImageLoader. Il est largement utilisé, vous pouvez l'utiliser directement ou apporter du code similaire à celui-ci.

https://github.com/nostra13/androïd-universal-image-loader < / a>


0 commentaires

0
votes

Vous pouvez prendre l'image et sur votre côté PHP le convertir en base64, puis sur le côté Android, décodez une image.


0 commentaires

0
votes

La meilleure pratique pour télécharger l'image doit être effectuée sur le fil d'arrière-plan, de sorte qu'il n'interrompre pas votre thread principal, puis mettez à jour l'interface utilisateur selon vos besoins.

La principaactivité de la classe publique étend l'appelcompatiactivité { xxx

}

ici, dans cet exemple, j'ai créé un mytask de classe interne qui prolonge l'asyncaptage où j'ai fait toutes mes opérations de réseau. Assurez-vous d'ajouter l'autorisation d'utilisations dans votre fichier manifeste.

espère que cela fonctionne pour vous aussi.


0 commentaires