2011-05-04 2 views
0

Je veux charger une image de l'url sur un bouton cliquez sur & pour le montrer sur l'activité imageview.Android charger une image de l'url sur le bouton cliquer

comment le faire? J'essaie le code suivant, mais il montre l'erreur système comme java.net.UnknownHostException L'hôte est sur résolu.

package com.v3.thread.fetchImage; 

import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

import org.apache.http.HttpException; 
import org.apache.http.conn.HttpHostConnectException; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

public class MainThreadActivity extends Activity { 
    ImageView img_downloaded; 
    Button btn_download; 
    String fileurl = "http://variable3.com/files/images/email-sig.jpg"; 

Bitmap bmImg; 
private ProgressDialog dialog; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //new MainThreadActivity().onPreExecute(); 

    img_downloaded = (ImageView) findViewById(R.id.imageView1); 
    btn_download = (Button) findViewById(R.id.btnLoad); 

    btn_download.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View arg0) { 
      try { 
       downloadfile(fileurl); 
      } catch (HttpHostConnectException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (HttpException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 


public void AbstractProgressTask() { 
    dialog = new ProgressDialog(this); 
} 

protected void onPreExecute() {new MainThreadActivity().onPreExecute(); 
    this.dialog.setMessage("Loading. Please wait..."); 
    this.dialog.show(); 
} 

/** 
* method is called after the work is done. 
* 
* @param success result of #doInBackground method. 
*/ 

protected void onPostExecute(final Boolean success) { 
    if (dialog.isShowing()) { 
     dialog.dismiss(); 
    } 
} 
// automatically done on worker thread (separate from UI thread) 
protected Boolean doInBackground(final String... args) { 

    // here is your code 
    return true; 
} 

void downloadfile(String fileurl) throws HttpException,HttpHostConnectException { 
    URL myFileUrl = null; 
    try { 
     myFileUrl = new URL(fileurl); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); 
     conn.setDoInput(true); 
     conn.connect(); 
     int length = conn.getContentLength(); 
     if(length>0) 
     { 
      int[] bitmapData =new int[length]; 
      byte[] bitmapData2 =new byte[length]; 
      InputStream is = conn.getInputStream(); 
      bmImg = BitmapFactory.decodeStream(is); 

      //img.setImageBitmap(bmImg); 
     } 
     else 
     { 
      int[] bitmapData =new int[length]; 
      byte[] bitmapData2 =new byte[length]; 
      InputStream is = conn.getInputStream(); 
      bmImg = BitmapFactory.decodeStream(is); 
     } 

    } 
    catch(IOException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 
} 

s'il vous plaît me dire où je VHA changer

+0

double possible [Charger une image à partir de l'URL sur le bouton cliquer] (http://stackoverflow.com/questions/5880191/load-an-image-from-url-on-button-click) –

Répondre

1

Cela semble beaucoup de code juste pour montrer sur un ImageView. Essayez ceci:

URL url = new URL("http://variable3.com/files/images/email-sig.jpg"); 
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
img_downloaded.setImageBitmap(bmp); 
-1

Il suffit d'appeler la méthode suivante sur le bouton Click:

Drawable drawable_from_url(String url, String src_name) throws java.net.MalformedURLException, java.io.IOException 
    { 
     return Drawable.createFromStream(((java.io.InputStream)new java.net.URL(url).getContent()), src_name); 
    } 

où url est l'URL pour passer et src_name est une chaîne (par exemple "src")

Espérons que cela va vous aider

0

Je veux charger une image de l'url sur un bouton cliquez sur & pour l'afficher sur l'activité imageview

Vous devez faire quelque chose comme ci-dessous dans onPageFinished:

public void onPageFinished (WebView view, String url) {  
    wv.loadUrl(javascript);   

    view.getSettings().setLoadsImagesAutomatically(true); 
    wv.setVisibility(View.VISIBLE); 
} 
+0

C'est tout sauf une réponse. S'il vous plaît, mettez un peu plus d'effort dans votre réponse. Décrivez le problème ou ce que fait votre code. –

+0

Je pense que les gens trouvent utile pourquoi ils votent. selon les règles. Reno à quelle base vous blâmer je ne sais pas. – RobinHood

1

Utilisez le code suivant pour cela, il vous aidera à

Drawable drawable = LoadImageFromWebOperations(backImgUrl); 
bagImgBtn.setBackgroundDrawable(drawable); 

private Drawable LoadImageFromWebOperations(String url) { 
    // TODO Auto-generated method stub 
    try 
    { 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src name"); 
     return d; 
    }catch (Exception e) { 
     if (LogD) { 
      Log.d(TAG, e.toString()); 
      e.printStackTrace(); 
     } 
     return null;  
    } 
} 
Questions connexes