public class MainActivity extends Activity {private String url = "http://wenwen.soso.com/p/20100322/20100322095024-1008716746.jpg";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);testTask();}public void testTask(){DownloadPicTask task = new DownloadPicTask();task.imgPath = url;task.img = (ImageView) findViewById(R.id.p_w_picpathView1);task.execute(url);}}
//任务类
package com.example.task;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.util.Log;import android.widget.ImageView;public class DownloadPicTask extends AsyncTask{public String imgPath; private byte[] data;public ImageView img;protected void onPrepareExecute(){Log.v("task", "onPrepareExecute");super.onPreExecute();}// doInBackground方法内部执行后台任务,不可在此方法内修改UI@Overrideprotected String doInBackground(String... arg0) {// TODO Auto-generated method stubLog.v("task", "doInBackground " + arg0);HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet(imgPath);HttpResponse httpResponse = null;try {httpResponse = httpClient.execute(httpGet);if (httpResponse.getStatusLine().getStatusCode() == 200) {data = EntityUtils.toByteArray(httpResponse.getEntity());}} catch (Exception e) {e.printStackTrace();}return null;}// onProgressUpdate方法用于更新进度信息@Overrideprotected void onProgressUpdate(Integer... progresses) {Log.v("task", "onProgressUpdate");super.onProgressUpdate(progresses);}// onPostExecute方法用于在执行完后台任务后更新UI,显示结果@Overrideprotected void onPostExecute(String result) {// progressDialog.dismiss();Log.v("task", "onPostExecute");Bitmap bmp=BitmapFactory.decodeByteArray(data, 0, data.length);img.setImageBitmap(bmp);}// onCancelled方法用于在取消执行中的任务时更改UI@Overrideprotected void onCancelled() {Log.v("task", "onCancelled");}}
//。xml中只有一个ImageView控件