public class MainActivity extends Activity { private ImageView image_load; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.image_load = (ImageView) this.findViewById(R.id.image_load); } public void download(View view) { String url = "http://litchiapi.jstv.com/Attachs/Top/11949/e650e0201de541d2ba91dca202b0fcfe.jpg"; // 调用异步任务,执行网络访问,注意联网要权限 new MyTask(this).execute(url); // 不用提示框时new MyTask()不加加入当前this,不用构造函数, } class MyTask extends AsyncTask<String, Void, byte[]> { /* * //AsyncTask三个重要参数:Params: 是一个可变数组 //Progress:进度条,没有时写为void , * //Result:结果参数,通常为byte[]数组 */ private ProgressDialog pDialog;// 不用在布局文件配置这个对话框 public MyTask(Context context) { // 建立提示对话框 pDialog = new ProgressDialog(context);// 当前上下文的对话框 pDialog.setTitle("提示"); pDialog.setMessage("正在下载....."); pDialog.setIcon(R.drawable.ic_launcher); } // 主线程运行, 在doInBackground以前执行 @Override protected void onPreExecute() { super.onPreExecute(); Log.i("MainActivity", "onPreExecute : " + Thread.currentThread().getName()); pDialog.show();// 在doInBackground以前执行,打开对话框 } @Override // 在子线程中调用后台执行 protected byte[] doInBackground(String... params) { Log.i("MainActivity", "onPostExecute : " + Thread.currentThread().getName()); String url = params[0]; HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); try { HttpResponse response = client.execute(get); if (response.getStatusLine().getStatusCode() == 200) { return EntityUtils.toByteArray(response.getEntity()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } // onPostExecute在主线程中执行,在doInBackground后执行,进行UI更新操做 @Override protected void onPostExecute(byte[] result) { Log.i("MainActivity", "onPostExecute : " + Thread.currentThread().getName()); super.onPostExecute(result); if (result != null) { Bitmap bitmap = BitmapFactory.decodeByteArray(result, 0, result.length); image_load.setImageBitmap(bitmap); } else { Toast.makeText(MainActivity.this, "网络异常!", Toast.LENGTH_SHORT) .show(); } pDialog.dismiss();// 下载完关闭对话框 } } } //布局 <ImageView android:id="@+id/image_load" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_load" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="download" android:layout_below="@+id/image_load" android:text="下载" />