package com.zhuozhuo; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.Toast; public class ThreadHandlerActivity extends Activity { /** Called when the activity is first created. */ private static final int MSG_SUCCESS = 0;// private static final int MSG_FAILURE = 1;// private ImageView mImageView; private Button mButton; private Thread mThread; private Handler mHandler = new Handler() { public void handleMessage (Message msg) {//�˷�����ui�߳����� switch(msg.what) { case MSG_SUCCESS: mImageView.setImageBitmap((Bitmap) msg.obj);//imageview��ʾ�������ȡ����logo Toast.makeText(getApplication(), getApplication().getString(R.string.get_pic_success), Toast.LENGTH_LONG).show(); break; case MSG_FAILURE: Toast.makeText(getApplication(), getApplication().getString(R.string.get_pic_failure), Toast.LENGTH_LONG).show(); break; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mImageView= (ImageView) findViewById(R.id.imageView); mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(mThread == null) { mThread = new Thread(runnable); mThread.start(); } else { Toast.makeText(getApplication(), getApplication().getString(R.string.thread_started), Toast.LENGTH_LONG).show(); } } }); } Runnable runnable = new Runnable() { @Override public void run() {//run()���µ��߳������� HttpClient hc = new DefaultHttpClient(); HttpGet hg = new HttpGet("http://www.linuxidc.com/pic/logo.gif");//��ȡLinux�����logo final Bitmap bm; try { HttpResponse hr = hc.execute(hg); bm = BitmapFactory.decodeStream(hr.getEntity().getContent()); } catch (Exception e) { mHandler.obtainMessage(MSG_FAILURE).sendToTarget();//��ȡͼƬʧ�� return; } mHandler.obtainMessage(MSG_SUCCESS,bm).sendToTarget();//��ȡͼƬ�ɹ�����ui�̷߳���MSG_SUCCESS��Ϣ��bitmap���� // mImageView.setImageBitmap(bm); //���������ڷ�ui�̲߳���uiԪ�� // mImageView.post(new Runnable() {//����һ�ָ����ķ�����Ϣ��ui�̵߳ķ����� // // @Override // public void run() {//run()��������ui�߳�ִ�� // mImageView.setImageBitmap(bm); // } // }); } }; }