Dans mon application Android, je souhaite mettre à jour un ImageView, avec une image spécifiée à partir d'une URL. Cette URL a été récupérée via une API dans le cadre d'un AsyncTask.Mise à jour d'une ImageView avec une image à partir d'une URL
J'ai défini le ImageView comme suit:
<ImageView
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_height="wrap_content"
android:id="@+id/product_image"
android:src="@drawable/no_product_image"
android:layout_marginRight="6dip"
android:layout_width="wrap_content"
/>
De cette façon, tandis que le chargement des données, il y a une image vierge présente derrière un ProgressDialog.
Dans le cadre du doInBackground du AsyncTask, après la récupération des détails de ce produit, je l'appelle:
private void createProductScreen(Product product){
Log.i(TAG, "Updating product screen");
//Set the product image
ImageView imgView =(ImageView)findViewById(R.id.product_image);
Drawable drawable = loadImageFromWeb(product.getImageUrl());
imgView.setImageDrawable(drawable);
Log.i(TAG, "Set image");
}
L'image est en cours de téléchargement à partir du Web comme suit:
private Drawable loadImageFromWeb(String url){
Log.i(TAG, "Fetching image");
try{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src");
Log.i(TAG, "Created image from stream");
return d;
}catch (Exception e) {
//TODO handle error
Log.i(TAG, "Error fetching image");
System.out.println("Exc="+e);
return null;
}
}
Lorsque cela fonctionne, je voir "Image créée à partir du flux" dans le journal, mais ne pas voir "Définir l'image" et l'onPostExecute de la tâche asynchrone n'est jamais appelée.
Est-ce que quelqu'un a des idées sur la question ou une meilleure façon de mettre à jour l'image de l'image vide à l'image du produit?
http://www.androidhive.info/2012/07/android-loading-image-from-url-http/ Suivez ce post. Je pense que vous devez ajouter des classes personnalisées et la fonction à partir de laquelle vous pouvez implémenter pour charger l'image ou les images. – ishtiyaqm15