android从网络获取图片并显示
2016-04-27 10:55
483 查看
由于安卓4.0以上 耗时操作要在子线程,更新UI的操作需要在主线程,所以:
public class ImxxFragment extends Fragment { public Bitmap bitmap; public ImageView dtx; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.imxx, container, false); dtx = (ImageView) view.findViewById(R.id.dtx); //得到可用的图片 new Thread(new Runnable() { public void run() { new AnotherTask().execute("JSON"); } }).start(); return view; } private class AnotherTask extends AsyncTask<String, Void, String>{ @Override protected void onPostExecute(String result) { //对UI组件的更新操作 dtx.setImageBitmap(bitmap); } @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub bitmap = getHttpBitmap(teacher.img); return params[0]; } } public static Bitmap getHttpBitmap(String url){ URL myFileURL; Bitmap bitmap=null; try{ myFileURL = new URL(url); //获得连接 HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection(); //设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制 conn.setConnectTimeout(6000); //连接设置获得数据流 conn.setDoInput(true); //不使用缓存 conn.setUseCaches(false); //这句可有可无,没有影响 //conn.connect(); //得到数据流 InputStream is = conn.getInputStream(); //解析得到图片 bitmap = BitmapFactory.decodeStream(is); //关闭数据流 is.close(); }catch(Exception e){ e.printStackTrace(); } return bitmap; } }
相关文章推荐
- HTTP的基本原理
- HTTP Keep-Alive是什么?如何工作?
- IDC机房网络测试要求
- 4月第3周网络安全报告:高危漏洞数量涨幅达94.1%
- http请求头与响应头剖析
- 网络安全
- 自己整理的OkHttp工具——留存用
- iOS开发网络篇—文件的上传
- Referenced file contains errors (http://struts.apache.org/dtds/struts-2.0.dtd)
- HTTP无状态协议和Connection:Keep-Alive容易犯的误区
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- TCP/IP详解 卷一 ---------ARP地址解析协议
- 搭建本地yum源(http方式) on Red Hat Enterprise Linux Server
- OSI七层与TCP/IP五层网络架构详解
- 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
- 网络存储
- 高级UIKit-09(TCPSocket发送文件、上传和下载) - 回读(IOS)
- Golang httptls 通信,带证书请求小实例
- 中断和网络驱动程序
- HttpURLConnection工具类 支持Gzip