android线程加载网络图片

package com.jiyirene.imageloadfrominternet;

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

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.Toast;

public class MainActivity extends Activity {

	private Button mButton;
	private ImageView mImage;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mButton=(Button) findViewById(R.id.bt);
		mImage=(ImageView) findViewById(R.id.iv);

		mButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				new Thread(mrunnable).start();
			}
		});	
		
	}
	
	public Bitmap getImage(){
		Bitmap bitmap=null;
		try {
			
			URL url=new URL("http://www.baidu.com/img/baidu_sylogo1.gif");
			InputStream is = url.openStream();
			bitmap=BitmapFactory.decodeStream(is);
			is.close();
			
			
			/* URL url=new URL("http://www.baidu.com/img/baidu_sylogo1.gif");
			 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
	          conn.setConnectTimeout(0);
	          conn.setDoInput(true);
	          conn.connect();
	          InputStream is = conn.getInputStream();
	          bitmap = BitmapFactory.decodeStream(is);
	          is.close();*/
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			Log.i("mytag", "错误");
		}
		return bitmap;
	}
	
	private Handler mhandler=new Handler(){
		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			super.handleMessage(msg);
			mImage.setImageBitmap((Bitmap)msg.obj);
	
		}
	};
	
	Runnable mrunnable=new Runnable(){

		@Override
		public void run() {
			// TODO Auto-generated method stub
			Bitmap bit=getImage();
			Message msg=new Message();
			msg.obj=bit;
			mhandler.sendMessage(msg);
			
		}
		
	};

}

android线程加载网络图片_第1张图片

你可能感兴趣的:(多线程,android,加载网络图片)