本来准备写一个简单的通过url获取网络图片setimage到imageview上去

没想到还是有一些小bug

先把源码供上

package com.example.seturlbitmapdemo;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.annotation.SuppressLint;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.widget.ImageView;@SuppressLint("HandlerLeak")public class MainActivity extends Activity {    protected static final int COMPLETED = 0;    Bitmap bitmap;    String url = "http://192.168.1.164/Upload_Files/262/339/201507/5582e259-9e70-478c-91b9-1f787fa11c77.jpg";    private ImageView iv;    private Handler handler = new Handler() {          @Override          public void handleMessage(Message msg) {              if (msg.what == COMPLETED) {                  iv.setImageBitmap(bitmap);            }          }      };     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv = (ImageView) findViewById(R.id.imageView1);        getPic(iv,url);    }    private void getPic(final ImageView iv,final String url) {        new Thread(new Runnable() {            @Override            public void run() {                try {                    HttpURLConnection conn = (HttpURLConnection) new URL(url)                            .openConnection();                    conn.connect();                    InputStream is = conn.getInputStream();                    bitmap = BitmapFactory.decodeStream(is);                                        is.close();                } catch (MalformedURLException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }                Message msg = new Message();                  msg.what = COMPLETED;                  handler.sendMessage(msg);              }        }).start();    }}

xml布局就是一个imageview

我一只告诉自己要用主线程更新ui
我在子线程里面获取数据,用一个handler接受获取数据成功的回调信息msg,然后更新ui,把bitmap设为全局的变量,这样就对了。

更多相关文章

  1. Android数据库SQLite使用详解一 : SQLiteOpenHelper详解
  2. android 之 handler
  3. Android期末项目(一)—— 解析二维数组对象
  4. (翻译)又一个Android(安卓)Sqlite库: Cupboard
  5. Android(安卓)系统信息获取(CPU,RAM,ROM,Battery,SD-card,版本等)
  6. 获取系统语言的方法
  7. Android(安卓)MediaPlayer 分析- MediaPlayerService.cpp
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. python起点网月票榜字体反爬案例

随机推荐

  1. 浅析Android单线程模型
  2. A folder failed to be renamed or moved
  3. 浅析Android手机卫士接收短信指令执行相
  4. [003] 写给准备学习Android的朋友
  5. Android(安卓)动画标签——scale
  6. Android与JavaScript方法相互调用
  7. 移动互联网的新宠:Android之缤纷世界
  8. 修改 Android(安卓)AVD 创建路径
  9. [APK破解]牛牛粤语学习机v1.6.4,积分1000,
  10. 2014 Android(安卓)各个版本市场占有率