1 package com.example.testdemo; 2 3 import java.io.ByteArrayOutputStream; 4 import java.io.IOException; 5 import java.io.InputStream; 6 7 import org.apache.http.HttpResponse; 8 import org.apache.http.client.HttpClient; 9 import org.apache.http.client.methods.HttpGet; 10 import org.apache.http.impl.client.DefaultHttpClient; 11 import android.os.AsyncTask; 12 import android.os.Bundle; 13 import android.app.Activity; 14 import android.app.ProgressDialog; 15 import android.graphics.Bitmap; 16 import android.graphics.BitmapFactory; 17 import android.view.Menu; 18 import android.view.View; 19 import android.view.View.OnClickListener; 20 import android.widget.Button; 21 import android.widget.ImageView; 22 23 public class MainActivity extends Activity { 24 25 private Button btn; 26 private ImageView mg; 27 private ProgressDialog pDialog; 28 private String path="http://himg2.huanqiu.com/attachment2010/111207/zip1323221781/1323221781_6.jpg"; 29 @Override 30 protected void onCreate(Bundle savedInstanceState) { 31 super.onCreate(savedInstanceState); 32 setContentView(R.layout.activity_main); 33 btn=(Button)findViewById(R.id.button1); 34 mg=(ImageView)findViewById(R.id.imageView1); 35 pDialog=new ProgressDialog(this); 36 pDialog.setTitle("提示"); 37 pDialog.setCancelable(false); 38 pDialog.setMessage("正在下载,请稍后……"); 39 pDialog.setIcon(R.drawable.ic_launcher); 40 pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 41 btn.setOnClickListener(new OnClickListener() { 42 43 @Override 44 public void onClick(View v) { 45 // TODO Auto-generated method stub 46 new MyTask().execute(path); 47 } 48 }); 49 } 50 51 @Override 52 public boolean onCreateOptionsMenu(Menu menu) { 53 // Inflate the menu; this adds items to the action bar if it is present. 54 getMenuInflater().inflate(R.menu.activity_main, menu); 55 return true; 56 } 57 58 public class MyTask extends AsyncTask<String, Integer, Bitmap> 59 { 60 61 /* (non-Javadoc) 62 * @see android.os.AsyncTask#doInBackground(Params[]) 63 */ 64 @Override 65 protected Bitmap doInBackground(String... params) { 66 // TODO Auto-generated method stub 67 Bitmap bitmap=null; 68 ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); 69 InputStream inputStream=null; 70 try { 71 HttpClient httpClient=new DefaultHttpClient(); 72 HttpGet httpGet=new HttpGet(params[0]); 73 HttpResponse httpResponse=httpClient.execute(httpGet); 74 if (httpResponse.getStatusLine().getStatusCode()==200) { 75 inputStream=httpResponse.getEntity().getContent(); 76 long file_length=httpResponse.getEntity().getContentLength(); 77 byte[] data=new byte[1024]; 78 int len=0; 79 int total=0; 80 while ((len = inputStream.read(data)) != -1) { 81 total+=len; 82 int values=(int)((total/(float)file_length)*100); 83 publishProgress(values); 84 outputStream.write(data, 0, len); 85 86 } 87 byte[] result01=outputStream.toByteArray(); 88 bitmap=BitmapFactory.decodeByteArray(result01, 0, result01.length); 89 } 90 91 } catch (Exception e) { 92 // TODO: handle exception 93 e.printStackTrace(); 94 }finally{ 95 if (inputStream != null) { 96 try { 97 inputStream.close(); 98 } catch (IOException e) { 99 // TODO Auto-generated catch block 100 e.printStackTrace(); 101 } 102 } 103 } 104 return bitmap; 105 } 106 107 @Override 108 protected void onPostExecute(Bitmap result) { 109 // TODO Auto-generated method stub 110 super.onPostExecute(result); 111 pDialog.dismiss(); 112 mg.setImageBitmap(result); 113 114 } 115 116 @Override 117 protected void onPreExecute() { 118 // TODO Auto-generated method stub 119 super.onPreExecute(); 120 pDialog.show(); 121 } 122 123 @Override 124 protected void onProgressUpdate(Integer... values) { 125 // TODO Auto-generated method stub 126 super.onProgressUpdate(values); 127 pDialog.setProgress(values[0]); 128 } 129 130 131 } 132 133 }
apk下载点击这里TestDemo.apk