本主要介绍在android如何获取网络图片的方法,其源代码如下:

        
  1. packagecom.demo.lc;
  2. importjava.io.ByteArrayOutputStream;
  3. importjava.io.IOException;
  4. importjava.io.InputStream;
  5. importjava.net.HttpURLConnection;
  6. importjava.net.URL;
  7. importandroid.app.Activity;
  8. importandroid.graphics.BitmapFactory;
  9. importandroid.os.Bundle;
  10. importandroid.view.View;
  11. importandroid.view.View.OnClickListener;
  12. importandroid.widget.Button;
  13. importandroid.widget.EditText;
  14. importandroid.widget.ImageView;
  15. importandroid.widget.Toast;
  16. publicclassImageViewActivityextendsActivityimplementsOnClickListener{
  17. /**网络路径输入框*/
  18. privateEditTextmEt_url=null;
  19. /**读取网络图片*/
  20. privateButtonmBtn_read=null;
  21. /**显示网络图片*/
  22. privateImageViewmIv_show=null;
  23. /**路径Url*/
  24. privateURLmUrl=null;
  25. /**http连接*/
  26. privateHttpURLConnectionmConn=null;
  27. /**存储图片的二进制数组*/
  28. privatebyte[]mPic=null;
  29. @Override
  30. publicvoidonCreate(BundlesavedInstanceState){
  31. super.onCreate(savedInstanceState);
  32. super.setContentView(R.layout.main);
  33. //初始化组件
  34. initWidget();
  35. this.mBtn_read.setOnClickListener(this);
  36. }
  37. privatevoidinitWidget(){
  38. //实例化EditText
  39. mEt_url=(EditText)super.findViewById(R.id.et_urlpath);
  40. //实例化Button
  41. mBtn_read=(Button)super.findViewById(R.id.btn_display);
  42. //实例化ImageView
  43. mIv_show=(ImageView)super.findViewById(R.id.iv_show);
  44. }
  45. @Override
  46. publicvoidonClick(Viewv){
  47. InputStreammIs=null;
  48. try{
  49. //实例化mUrl
  50. mUrl=newURL(mEt_url.getText().toString());
  51. //建立Http网络连接
  52. mConn=(HttpURLConnection)mUrl.openConnection();
  53. //设置请求方式为GET
  54. mConn.setRequestMethod("GET");
  55. //设置超时时间为5秒
  56. mConn.setConnectTimeout(5000);
  57. //获取图片的输入
  58. mIs=mUrl.openStream();
  59. //获取图片的二进制数组
  60. mPic=getByteArray(mIs);
  61. System.out.println(mPic.length);
  62. mIs.close();
  63. }catch(Exceptione){
  64. //当连接超时的时候会弹出Toast
  65. Toast.makeText(this,R.string.error,100).show();
  66. e.printStackTrace();
  67. }
  68. mIv_show.setImageBitmap(BitmapFactory.decodeByteArray(mPic,0,mPic.length));
  69. }
  70. privatebyte[]getByteArray(InputStreamis){
  71. //用于向内存中写字节的字节数组输出流
  72. ByteArrayOutputStreambos=newByteArrayOutputStream();
  73. //字节数组缓冲区
  74. byte[]temp=newbyte[1024];
  75. //读取字节的长度
  76. intlen=0;
  77. try{
  78. //以二进制的形式读入
  79. while((len=is.read(temp))!=-1){
  80. bos.write(temp,0,len);
  81. }
  82. is.close();
  83. }catch(IOExceptione){
  84. e.printStackTrace();
  85. }
  86. //转化为字节数组
  87. returnbos.toByteArray();
  88. }
  89. }

效果如下:

更多相关文章

  1. android上传图片至服务器
  2. Android保存图片到本地或者数据库,并通知相册更新
  3. Android屏幕截图并保存截取屏幕的图片到指定文件
  4. android两种方式实现圆形图片
  5. android Imageview 图片覆盖具体实现
  6. android 实现类似Iphone底部消息数量提示
  7. Android(安卓)Universal Image Loader 源码分析
  8. Android(安卓)缩放图片
  9. Android截屏及图片解析

随机推荐

  1. Android下的图形渲染配置文件egl.cfg
  2. 后台(02)——MySQL(2)
  3. AndroidStudio ListView 简单使用 (使用a
  4. Android Studio安卓学习笔记(二)Android
  5. Android外设AOA技术原理
  6. Android(安卓)之窗口小部件高级篇--App W
  7. Android中自己定义一个shade.xml
  8. android与ios之争之我见
  9. Android查看外部依赖jar的源码'Android P
  10. Android自适应屏幕大小和layout布局(横屏