Comment définir l'image à partir de l'Url à l'aide de AsyncTask?
Je suis un débutant programmeur je suis en train de faire un android programme qui affiche une image sur ImageView à partir d'une url donnée. Mon problème est de savoir comment vous l'utiliser sur le AsyncTask?
Ces codes fonctionnent sur min SDK 2.2 mais je suis passé à min SDK 3.0 donc il a besoin pour s'exécuter sur l'AsyncTask. Merci pour votre aide! 🙂
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
satellite(); //satellite's image from main menu
}
//******satellite url
private void satellite() {
//TODO Auto-generated method stub
ImageView imgView =(ImageView)findViewById(R.id.satellite);
Drawable drawable = LoadImageFromWeb("http://www.pagasa.dost.gov.ph/wb/sat_images/satellite.gif");
imgView.setImageDrawable(drawable);
}
private Drawable LoadImageFromWeb(String url){
try{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}
}
Tol, SDK 2.2? SDK 3.0? Tu veux dire Froyo et en nid d'abeille?
Oui. parce que dans la version 3.0 ci-dessus, j'ai besoin d'exécuter un thread séparé, quand je reçois des données à partir d'internet. En 2.2, il n'a pas ce problème. Donc je vais avoir ce problème
Oui. parce que dans la version 3.0 ci-dessus, j'ai besoin d'exécuter un thread séparé, quand je reçois des données à partir d'internet. En 2.2, il n'a pas ce problème. Donc je vais avoir ce problème
OriginalL'auteur Kkeevv Siena Alejandrino | 2013-01-15
Vous devez vous connecter pour publier un commentaire.
bien, je ne sais pas pourquoi SDK android ne fournit pas de support pour elle (encore) j'ai prolongé l'ImageView classe par UrlImageView de classe avec le chargement asynchrone et la mise en cache de soutien. J'ai mis le code de ma classe ci-dessous, qui est plug-and-play. Le corps de la classe est à la fin de mon post, maintenant, j'écris deux lignes comment l'utiliser de la façon la plus pratique.
Deux autres méthodes sont maintenant pris en charge:
Comment utiliser votre java-code:
Comment lier dans vos mises en page:
..et encore dans votre activité de code java:
- Je l'utiliser dans des listes avec plus de 100 entrées - jetant très bien. Ici, le corps de la classe, vous pouvez l'utiliser, de le modifier, de le prolonger, ce que vous voulez:
J'ai posté ma propre mise en oeuvre comme une nouvelle réponse pour les autres utilisateurs, nous pouvons utiliser la normale ImageView pour le chargement des images au lieu de UrlImageView. Il prend également en charge l'action comme onComplete et onCancel
OriginalL'auteur comeGetSome
Si l'image n'est pas aussi grande que vous pouvez simplement utiliser une classe anonyme pour la tâche asynchrone. Ce serait comme ceci:
et la tâche de la classe est
OriginalL'auteur Priya
Essayer ce code, faites votre drawable variable globale et de changer votre satellite de la fonction comme ceci:
puis créer asyncTask classe comme ceci:
OriginalL'auteur Vikram
Voici le code pour la mise en œuvre Aynctask
Faire de votre objet dessiné mondial dans Aynctask classe.
maintenant créer un objet de cette classe et de l'exécuter
Ici est un bon exemple de lien pour la mise en cache de l'image, consultez ce lien et exemple
https://github.com/novoda/ImageLoader
new MyDownloader.execute();
Il dit: MyDownloader ne peut pas être résolu à un type. Et aussi j'ai changéClass MyDownloader extends AsyncTask<Void,Void,String>{
:public class MyDownloader extends AsyncTask<Void,Void,String>{
parce qu'il indique une erreur sur laClass
partie. Suis-je en train de faire?OriginalL'auteur Pratik
Vous avez raison lorsque u n'importe quel réseau de l'opération plus tard
Android 2.2(Froyo)
Devez utiliser AsynctaskC'est le meilleur exemple à comprendre
AsyncTask
OriginalL'auteur Dixit Patel
basé sur la réponse de comeGetSome j'ai créé ma propre mise en œuvre, qui travaille avec la normale ImageView classe au lieu de créer une nouvelle classe UrlImageView, ainsi que de nouvelles options sont proposées comme: que faire lorsque le chargement est terminé ou annule
Maintenant charger l'image comme vous le souhaitez, comme ce à partir de trois loadImage méthodes
créer cette classe pour le chargement UrlImageLoader
OriginalL'auteur Diljeet
Il suffit de créer une nouvelle classe "DownloadImageTask" que de suivre et de le mettre dans le même dossier où vous avez votre Activité.
Après cela, ajoutez la ligne de caisse que classe dans votre Activité.
N'oubliez pas d'autoriser l'accès à INTERNET à votre application Android.
Vérifier votre fichier manifest.
OriginalL'auteur Academy of Programmer