本主要介绍在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 Imageview 图片覆盖具体实现
  5. Android 缩放图片
  6. Android截屏及图片解析
  7. Android 利用animation-list自定义progressbar动画出现图片平铺

随机推荐

  1. AllJoyn, Android 平台 设备之间通信开源
  2. Android——HttpUrlConnection
  3. android中selector在java代码中使用无效
  4. 关于Android(安卓)的Log使用
  5. TabHost自定义标签页(二)
  6. Android 触摸屏手势识别资料汇总
  7. Android学习杂记(二):异步任务AsyncTask详解
  8. Android Api WindowManager.LayoutParams
  9. FloatingActionButton
  10. The method Inflate() in android