方法一:

package com.example.handlerdemo;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 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.view.View;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {    private static final int MSG_SUCCESS = 0;// 获取图片成功的标识    private static final int MSG_FAILURE = 1;// 获取图片失败的标识    ImageView mImageView;    Handler mHandler = new Handler() {        public void handleMessage(Message msg) {            switch (msg.what) {            case MSG_SUCCESS:                mImageView.setImageBitmap((Bitmap) msg.obj);// imageview显示从网络获取到的logo                break;            case MSG_FAILURE:                Toast.makeText(getApplication(), "下载失败", Toast.LENGTH_LONG)                        .show();                break;            }        }    };protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mImageView = (ImageView) findViewById(R.id.imageView1);// 显示图片的ImageView    }    public void onClick(View v) {        switch (v.getId()) {        case R.id.button1:            mImageView.setImageBitmap(null);            new Thread(new Runnable() {                public void run() {                    HttpClient hc = new DefaultHttpClient();                    HttpGet hg = new HttpGet(                            "http://www.baidu.com/img/baidu_sylogo1.gif");// 获取百度的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对象                }            }).start();            break;
} }}

不过这个方法有个小问题 老是提示会内存泄露

方法二:

package com.example.handlerdemo;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 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.view.View;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {    ImageView mImageView;    Handler mHandler02 = new Handler();    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mImageView = (ImageView) findViewById(R.id.imageView1);// 显示图片的ImageView    }    public void onClick(View v) {        switch (v.getId()) {        case R.id.button2:            mImageView.setImageBitmap(null);            new Thread(new Runnable() {                public void run() {                    HttpClient hc = new DefaultHttpClient();                    HttpGet hg = new HttpGet(                            "http://www.baidu.com/img/baidu_sylogo1.gif");// 获取百度的LOGO                    try {                        HttpResponse hr = hc.execute(hg);                        final Bitmap bm = BitmapFactory.decodeStream(hr.getEntity()                                .getContent());                        mHandler02.post(new Runnable() {                            public void run() {                                mImageView.setImageBitmap(bm);// imageview显示从网络获取到的logo                            }                        });                    } catch (Exception e) {                        mHandler02.post(new Runnable() {                            public void run() {                                Toast.makeText(getApplication(), "下载失败",                                        Toast.LENGTH_LONG).show();                            }                        });                    }                                    }            }).start();            break;        default:            break;        }    }}

用方法二是不会出内存泄露的警告的

效果图:

csdn下载地址:http://download.csdn.net/detail/wenwei19861106/4868799

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. android关于动态壁纸live WallPaper
  3. android按分辨率压缩图片
  4. Android(安卓)ListView异步加载图片
  5. android 处理图片工具类
  6. Android获取当前位置信息,百分之百有效
  7. android 图片缩放
  8. Android中GridView来显示图片
  9. android获取设备空闲空间

随机推荐

  1. Android中在UI中加入线条
  2. Android 打开TextView中的超链接
  3. Android 系统自带Activity效果
  4. Android 水平的ListView
  5. AndroidStudio 编译项目报错 Android(安
  6. android view子类的构建
  7. android里图片下载工具类AsyncImageLoade
  8. Android状态栏通知
  9. android蓝牙开发入门到精通4------通信标
  10. Android Service学习之IntentService 深