class NormalLoadPictrue { private String uri; private ImageView imageView; private byte [] picByte; public void getPicture(String uri,ImageView imageView){ this .uri = uri; this .imageView = imageView; new Thread(runnable).start(); } @SuppressLint ( "HandlerLeak" ) Handler handle = new Handler(){ @Override public void handleMessage(Message msg) { super .handleMessage(msg); if (msg.what == 1 ) { if (picByte != null ) { Bitmap bitmap = BitmapFactory.decodeByteArray(picByte, 0 , picByte.length); imageView.setImageBitmap(bitmap); } } else if (msg.what == 1 ){ ToastUtil.show( "图片下载失败!" ); } } }; Runnable runnable = new Runnable() { @Override public void run() { try { URL url = new URL(uri); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod( "GET" ); conn.setReadTimeout( 10000 ); if (conn.getResponseCode() == 200 ) { InputStream fis = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte [] bytes = new byte [ 1024 ]; int length = - 1 ; while ((length = fis.read(bytes)) != - 1 ) { bos.write(bytes, 0 , length); } picByte = bos.toByteArray(); bos.close(); fis.close(); Message message = new Message(); message.what = 1 ; handle.sendMessage(message); } } catch (ConnectTimeoutException e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); } catch (ClientProtocolException e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); } catch (SocketTimeoutException e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); } catch (UnsupportedEncodingException e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); } catch (IOException e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); } catch (Exception e) { Message message = new Message(); message.what = 2 ; handle.sendMessage(message); e.printStackTrace(); // TODO: handle exception } } }; }

更多相关文章

  1. Android(安卓)APK安装常见错误
  2. Bmob中的几种查询方法
  3. Android中的数据库操作(保证线程安全)
  4. viewModel与recyclerView结合
  5. android > 获取当前位置
  6. Android(安卓)有时环信初始化失败,创建applocation失败
  7. 关于android编译失败的集中情况
  8. 解决S5pv210 adb push u-boot.bin /system 的失败问题
  9. 解决Android创建AVD失败

随机推荐

  1. memcpy函数用法
  2. c语言位运算符
  3. char是什么数据类型
  4. win10离线安装net35的方法技巧
  5. c++输出语句
  6. asp.net怎么使用js文件
  7. asp还有人用吗
  8. 递归算法的时间复杂度是什么
  9. webApi怎么调用
  10. malloc函数的用法