android获取互联网图片与源代码——网络编

简介:

android网络编程,是我们学习网络开发的重要课程,在此小弟今天学习了一下,从互联网上获取图片与门户网的源代码。大家肯定很急了吧,先让我们看一下效果先,大家还是很感兴趣的。

如图:

 

 

我的宝马牛吧,虚拟的,真的就好了。

 

 

让我们看一下原代码是如何写。这可是我的原创哦

 
  1. package com.smart.net.activity;  
  2.  
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.graphics.Bitmap;  
  6. import android.graphics.BitmapFactory;  
  7. import android.os.Bundle;  
  8. import android.util.Log;  
  9. import android.view.View;  
  10. import android.widget.Button;  
  11. import android.widget.EditText;  
  12. import android.widget.ImageView;  
  13. import android.widget.Toast;  
  14.  
  15. import com.smart.net.utils.NetTool;  
  16.  
  17. public class DataActivity extends Activity {  
  18.     private EditText imagePathText;  
  19.     private static final String TAG="DataActivity";  
  20.     private ImageView imageView;  
  21.  
  22.     @Override 
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main);  
  26.         imagePathText = (EditText) findViewById(R.id.imagepath);  
  27.         imageView=(ImageView)findViewById(R.id.imageView);   
  28.           
  29.         //获取我的宝马车图片  
  30.         Button button = (Button) findViewById(R.id.button);  
  31.         button.setOnClickListener(new View.OnClickListener() {  
  32.  
  33.             @Override 
  34.             public void onClick(View v) {  
  35.                 String path = imagePathText.getText().toString();  
  36.                 try {  
  37.                       
  38.                     byte[] data=NetTool.getImage(path);  
  39.                     Bitmap bm=BitmapFactory.decodeByteArray(data, 0, data.length);  
  40.                     imageView.setImageBitmap(bm);  
  41.                 } catch (Exception e) {  
  42.                     Log.i(TAG, e.toString());  
  43.                     Toast.makeText(DataActivity.this"获得图片失败"1).show();  
  44.                 }  
  45.             }  
  46.         });  
  47.           
  48. //      获取网页源代码  
  49.         Button sinaButton = (Button) findViewById(R.id.sinaButton);  
  50.         sinaButton.setOnClickListener(new View.OnClickListener() {  
  51.  
  52.             @Override 
  53.             public void onClick(View v) {  
  54.                 Intent intent=new Intent(DataActivity.this,SinaActivity.class);  
  55.                 startActivity(intent);  
  56.             }  
  57.         });  
  58.  
  59.     }  

网页类 

 
  1. package com.smart.net.activity;  
  2.  
  3. import com.smart.net.utils.NetTool;  
  4.  
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.util.Log;  
  8. import android.widget.EditText;  
  9. import android.widget.ImageView;  
  10. import android.widget.TextView;  
  11. import android.widget.Toast;  
  12.  
  13. public class SinaActivity extends Activity {  
  14.     private TextView textView;  
  15.     private static final String TAG="SinaActivity";  
  16. //  获取网页源代码  
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.sina);  
  20.           
  21.         textView=(TextView)this.findViewById(R.id.sina);  
  22.         try {  
  23.             String html=NetTool.getHtml("http://www.sina.com.cn","GBK");  
  24.             textView.setText(html);  
  25.         } catch (Exception e) {  
  26.             Log.i(TAG, e.toString());  
  27.             Toast.makeText(SinaActivity.this"获得网页失败"1).show();  
  28.         }  
  29.     }  
  30. }  

方法实现类

 

 
  1. package com.smart.net.utils;  
  2.  
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.File;  
  5. import java.io.FileOutputStream;  
  6. import java.io.InputStream;  
  7. import java.net.HttpURLConnection;  
  8. import java.net.URL;  
  9.  
  10.  
  11. public class NetTool {  
  12.     /**  
  13.      * 获得url代码数据  
  14.      * */ 
  15.       
  16.     public static String getHtml(String path,String encoding) throws Exception {  
  17.         URL url = new URL(path);  
  18.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  19.         conn.setRequestMethod("GET");  
  20.         conn.setConnectTimeout(6 * 1000);  
  21.         // 别超过10秒。  
  22.         System.out.println(conn.getResponseCode());  
  23.         if(conn.getResponseCode()==200){  
  24.             InputStream inputStream=conn.getInputStream();  
  25.             byte[] data=readStream(inputStream);  
  26.             return new String(data,encoding);  
  27.         }  
  28.         return null;  
  29.     }  
  30.       
  31. /**  
  32.  * 获取指定路径,的数据。  
  33.  *   
  34.  * **/ 
  35.     public static byte[] getImage(String urlpath) throws Exception {  
  36.         URL url = new URL(urlpath);  
  37.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
  38.         conn.setRequestMethod("GET");  
  39.         conn.setConnectTimeout(6 * 1000);  
  40.         // 别超过10秒。  
  41.         if(conn.getResponseCode()==200){  
  42.             InputStream inputStream=conn.getInputStream();  
  43.             return readStream(inputStream);  
  44.         }  
  45.         return null;  
  46.     }  
  47.       
  48.     /**  
  49.      * 读取数据   
  50.      * 输入流  
  51.      *   
  52.      * */ 
  53.     public static byte[] readStream(InputStream inStream) throws Exception {  
  54.         ByteArrayOutputStream outstream=new ByteArrayOutputStream();  
  55.         byte[] buffer=new byte[1024];  
  56.         int len=-1;  
  57.         while((len=inStream.read(buffer)) !=-1){  
  58.             outstream.write(buffer, 0, len);  
  59.         }  
  60.         outstream.close();  
  61.         inStream.close();  
  62.           
  63.     return outstream.toByteArray();  
  64. }  
  65. }  

 


本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/491535,如需转载请自行联系原作者

相关文章
|
3天前
|
存储 缓存 编解码
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
36 20
Android经典面试题之图片Bitmap怎么做优化
|
28天前
|
安全 网络安全 Android开发
安卓与iOS开发:选择的艺术网络安全与信息安全:漏洞、加密与意识的交织
【8月更文挑战第20天】在数字时代,安卓和iOS两大平台如同两座巍峨的山峰,分别占据着移动互联网的半壁江山。它们各自拥有独特的魅力和优势,吸引着无数开发者投身其中。本文将探讨这两个平台的特点、优势以及它们在移动应用开发中的地位,帮助读者更好地理解这两个平台的差异,并为那些正在面临选择的开发者提供一些启示。
115 56
|
5天前
|
安全 量子技术
探索未来网络:量子互联网的奥秘
本文将探讨量子互联网的基本概念、技术原理以及其潜在的应用和发展前景。我们将从传统互联网的局限性谈起,逐步引入量子纠缠和量子叠加等核心原理,解释量子互联网如何实现超高速度和超高效率的信息传输。同时,我们还将讨论量子互联网在安全性、计算能力等方面带来的革命性变化,并对其未来的发展方向和挑战进行展望。通过深入浅出的语言,本文旨在启发读者对这一前沿科技领域的思考,并激发对未来无限可能的想象。
|
21天前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
38 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
1月前
|
数据处理 开发工具 数据安全/隐私保护
Android平台RTMP推送|轻量级RTSP服务|GB28181接入之文字、png图片水印的精进之路
本文探讨了Android平台上推流模块中添加文字与PNG水印的技术演进。自2015年起,为了满足应急指挥及安防领域的需求,逐步发展出三代水印技术:第一代为静态文字与图像水印;第二代实现了动态更新水印内容的能力,例如实时位置与时间信息;至第三代,则优化了数据传输效率,直接使用Bitmap对象传递水印数据至JNI层,减少了内存拷贝次数。这些迭代不仅提升了用户体验和技术效率,也体现了开发者追求极致与不断创新的精神。
|
30天前
|
网络协议 Linux 网络安全
遇到Docker容器网络隔断?揭秘六种超级实用解决方案,轻松让Docker容器畅游互联网!
【8月更文挑战第18天】Docker容器内网络不通是开发者常遇问题,可能因网络配置错、Docker服务异常或防火墙阻碍等原因引起。本文提供六种解决策略:确认Docker服务运行状态、重启Docker服务、检查与自定义Docker网络设置、验证宿主机网络连接、临时禁用宿主机IPv6及检查防火墙规则。通过这些步骤,多数网络问题可得以解决,确保容器正常联网。
50 1
|
1月前
|
缓存
Flutter Image从网络加载图片刷新、强制重新渲染
Flutter Image从网络加载图片刷新、强制重新渲染
49 1
|
1月前
|
自然语言处理 定位技术 API
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
本文介绍如何在Android中从图片提取地理位置信息并转换为地址。首先利用`ExifInterface`获取图片内的经纬度,然后通过`Geocoder`将经纬度转为地址。注意操作需在子线程进行且考虑多语言支持。
104 4
|
20天前
|
安全 网络安全 Android开发
探索安卓开发之旅:从新手到专家网络安全与信息安全:防范网络威胁,保护数据安全
【8月更文挑战第29天】在这篇技术性文章中,我们将踏上一段激动人心的旅程,探索安卓开发的世界。无论你是刚开始接触编程的新手,还是希望提升技能的资深开发者,这篇文章都将为你提供宝贵的知识和指导。我们将从基础概念入手,逐步深入到安卓开发的高级主题,包括UI设计、数据存储、网络通信等方面。通过阅读本文,你将获得一个全面的安卓开发知识体系,并学会如何将这些知识应用到实际项目中。让我们一起开启这段探索之旅吧!
|
27天前
|
Java Android开发 Kotlin
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
24 0