在AndroidManifest.xml里面先添加访问网络的权限:

<uses-permission android:name="android.permission.INTERNET"/>

效果图如下

下面是主要代码:

  1. package com.hb.neting;
  2.  
  3. import java.io.InputStream;
  4. import java.net.HttpURLConnection;
  5. import java.net.URL;
  6.  
  7. import android.annotation.SuppressLint;
  8. import android.app.Activity;
  9. import android.graphics.Bitmap;
  10. import android.graphics.BitmapFactory;
  11. import android.os.Bundle;
  12. import android.text.TextUtils;
  13. import android.view.View;
  14. import android.widget.EditText;
  15. import android.widget.ImageView;
  16. import android.widget.Toast;
  17.  
  18. public class MainActivity extends Activity {
  19. private ImageView iv_show;
  20. private EditText et_input;
  21. private String path;
  22. private int code;
  23. private HttpURLConnection conn;
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.activity_main);
  28. iv_show=(ImageView) findViewById(R.id.iv_show);
  29. et_input=(EditText) findViewById(R.id.et_inpput);
  30. }
  31. @SuppressLint("ShowToast") public void chakan(View view){
  32. path = et_input.getText().toString().trim();
  33. if (TextUtils.isEmpty(path)) {
  34. Toast.makeText(MainActivity.this, "不能输入空的", 0).show();
  35. return;
  36. }
  37. new Thread(){
  38. public void run() {
  39. try {
  40. URL url = new URL(path);
  41. conn = (HttpURLConnection) url.openConnection();
  42. conn.setRequestMethod("GET");
  43. conn.setConnectTimeout(5000);
  44. code = conn.getResponseCode();
  45. if(code==200){
  46. InputStream in = conn.getInputStream();
  47. //解析图片
  48. final Bitmap stream = BitmapFactory.decodeStream(in);
  49. runOnUiThread(new Runnable() {
  50. public void run() {
  51. //更新UI
  52. iv_show.setImageBitmap(stream);
  53. }
  54. });
  55. in.close();
  56. }
  57. } catch (Exception e) {
  58. e.printStackTrace();
  59. }
  60. };
  61. }.start();
  62. }
  63. }

这是xml的布局:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6.  
  7. <EditText
  8. android:id="@+id/et_inpput"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:hint="请输入获取图片的地址:" />
  12. <Button
  13. android:id="@+id/bt_read"
  14. android:onClick="chakan"
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:text="查看"
  18. />
  19. <ImageView
  20. android:id="@+id/iv_show"
  21. android:layout_width="match_parent"
  22. android:layout_height="match_parent"
  23. />
  24. </LinearLayout>

源码:http://pan.baidu.com/s/1bUgMgY

接着看一下网页源码查看器的小案例:

  既然都涉及到网络的添加一个如上的网络权限是必不可少的了,具体操做如上所示,先看效果图:

主要代码:

  1. package com.hb.network;
  2.  
  3. import java.io.InputStream;
  4. import java.net.HttpURLConnection;
  5. import java.net.URL;
  6.  
  7. import android.annotation.SuppressLint;
  8. import android.app.Activity;
  9. import android.os.Bundle;
  10. import android.os.Handler;
  11. import android.os.Message;
  12. import android.text.TextUtils;
  13. import android.view.View;
  14. import android.widget.EditText;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17.  
  18. import com.hb.utils.ReadStreamUtils;
  19.  
  20. public class MainActivity extends Activity {
  21. protected static final int SUCESS = 0;
  22. protected static final int EORR = 1;
  23. private TextView tv_show;
  24. private EditText et_input;
  25. private URL url;
  26. private String path;
  27. @SuppressLint("HandlerLeak")
  28. private Handler handler=new Handler(){
  29. public void handleMessage(android.os.Message msg) {
  30. switch (msg.what) {
  31. case SUCESS:
  32. String content=(String) msg.obj;
  33. tv_show.setText(content);
  34. break;
  35.  
  36. case EORR:
  37. Toast.makeText(MainActivity.this,"查看源码失败" , 0).show();
  38. break;
  39. }
  40. };
  41. };
  42. @Override
  43. protected void onCreate(Bundle savedInstanceState) {
  44. super.onCreate(savedInstanceState);
  45. setContentView(R.layout.activity_main);
  46. tv_show=(TextView) findViewById(R.id.tv_show);
  47. et_input=(EditText) findViewById(R.id.et_input);
  48.  
  49. }
  50. public void onclick(View view){
  51. path = et_input.getText().toString().trim();
  52. if(TextUtils.isEmpty(path)){
  53. return;
  54. }new Thread(){
  55. public void run() {
  56. try {
  57. url = new URL(path);
  58. //判断从EditText获取的数据否为空
  59. if(TextUtils.isEmpty(path)){
  60. return;
  61. }
  62. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  63. conn.setConnectTimeout(3000);
  64. conn.setRequestMethod("GET");
  65. int code = conn.getResponseCode();
  66. if(code == 200){
  67. InputStream is= conn.getInputStream();
  68. String content = ReadStreamUtils.Read(is);
  69. Message msg = new Message();
  70. msg.what=SUCESS;
  71. msg.obj=content;
  72. handler.sendMessage(msg);
  73. }
  74. } catch (Exception e) {
  75. e.printStackTrace();
  76. Message msg = new Message();
  77. msg.what=EORR;
  78. handler.sendMessage(msg);
  79. }
  80. };
  81. }.start();
  82.  
  83. }
  84. }
  1. package com.hb.utils;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. public class ReadStreamUtils {
  8. /**
  9. * 读取流的输入
  10. * @param is
  11. * @return
  12. * @throws IOException
  13. */
  14. public static String Read(InputStream is) throws IOException{
  15. ByteArrayOutputStream bos = new ByteArrayOutputStream();
  16. int len;
  17. byte [] buffer=new byte[1024];
  18. while((len=is.read(buffer))!=-1){
  19. bos.write(buffer,0,len);
  20. }
  21. is.close();
  22. bos.close();
  23. String temp = bos.toString();
  24. if(temp.contains("charset=utf-8")){
  25. return bos.toString("utf-8");
  26. }else if(temp.contains("charset=iso-8859-1")){
  27. return bos.toString("iso-8859-1");
  28. }
  29. return null;
  30.  
  31. }
  32.  
  33. }

及xml布局:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical"
  6. tools:context="${relativePackage}.${activityClass}" >
  7.  
  8. <EditText
  9. android:id="@+id/et_input"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:hint="请输入要查看源码的网址:" />
  13.  
  14. <Button
  15. android:onClick="onclick"
  16. android:layout_width="match_parent"
  17. android:layout_height="wrap_content"
  18. android:text="查看"
  19. android:textSize="25sp" />
  20.  
  21. <ScrollView
  22. android:layout_width="match_parent"
  23. android:layout_height="match_parent" >
  24.  
  25. <TextView
  26. android:id="@+id/tv_show"
  27. android:layout_width="match_parent"
  28. android:layout_height="match_parent" />
  29. </ScrollView>
  30.  
  31. </LinearLayout>

  源码:http://pan.baidu.com/s/1bUgMgY

     http://pan.baidu.com/s/1i46RQqL 

Android 网络图片查看器与网页源码查看器的更多相关文章

  1. 黎活明8天快速掌握android视频教程--24_网络通信之网页源码查看器

    1 该项目的主要功能就是从将后台的html网页在Android的界面上显示出来 后台就是建立一个java web工程在工程尚建立一个html或者jsp文件就可以了,这里主要看Android客户端的程序 ...

  2. Android(java)学习笔记203:网页源码查看器(Handler消息机制)

    1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com ...

  3. Android(java)学习笔记146:网页源码查看器(Handler消息机制)

    1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com ...

  4. android 网络_网络源码查看器

    xml设计 <?xml version="1.0"?> -<LinearLayout tools:context=".MainActivity" ...

  5. Android: 在WebView中获取网页源码

    1. 使能javascript: ? 1 webView.getSettings().setJavaScriptEnabled(true); 2. 编写本地接口 ? 1 2 3 4 5 final c ...

  6. 编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/54562606 网上关于编译Android源码的教程已经很多了,但是讲怎么编译And ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  8. 如何查看google chrome 插件源码

    常用浏览器google chrome 有很多优秀的插件,寂寞的时候想看看人家是怎么实现的,说是快那就动手吧 插件代码位置 本人mac笔记本,chrome 插件位置如下 $ cd  /Users/vin ...

  9. Python爬虫学习之获取网页源码

    偶然的机会,在知乎上看到一个有关爬虫的话题<利用爬虫技术能做到哪些很酷很有趣很有用的事情?>,因为强烈的好奇心和觉得会写爬虫是一件高大上的事情,所以就对爬虫产生了兴趣. 关于网络爬虫的定义 ...

随机推荐

  1. redux 简明学习

    核心概念 redux专注于状态管理,把所有的状态都存在一个对象中.核心概念包括:store.state.action.reducer [store] store是保存数据的地方,redux提供crea ...

  2. 【前端】JavaScript继承实现的四种方式

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/4770235.html 一.继承的实现方法 1.原型链继承 这个继承最为简单,它的实现原理是,每一个AO对象都有一 ...

  3. .a 文件解析

    首先先准备一个静态库.a文件,比如叫staticLibrary.a,放在桌面的test目录里. 分离arch 首先先file一下staticLibrary.a,看一下该文件包含几种arch. ~ cd ...

  4. 【code】flex_进度条样式

    近期打算吧硬盘中的资料记录在博客中,实用的就当是个分享,无用的就当是个备份,还望大家不要见怪. 一共4个文件: JinDuTiaoItem.mxml: <?xml version="1 ...

  5. linux c 获取当前执行进程总数

    获取当前执行进程总数的命令为: ps auxw | wc -l 获取当前执行进程总数的源代码例如以下: #include <stdio.h> #include <stdlib.h&g ...

  6. Windows 环境下运用Python制作网络爬虫

    import webbrowser as web import time import os i = 0 MAXNUM = 1 while i <= MAXNUM: web.open_new_t ...

  7. 开拓新途径找出新方法,上海SEO公司分享3个操作看看是否可行

    开拓新途径找出新方法,上海SEO公司分享3个操作看看是否可行 内容收录,外链公布,流量点击.用户体验.这是SEO优化的几个核心和重点.也是SEO站长每天都在绞尽脑汁进行操作的SEO重心,影响着非常多人 ...

  8. shell如何查看单个或多个文件的行数或总行数

    shell如何查看单个或多个文件的行数或总行数_百度经验 https://jingyan.baidu.com/article/cbf0e500b8470f2eab28937d.html 单个文件   ...

  9. cassandra的全文检索插件

    https://github.com/Stratio/cassandra-lucene-index Stratio’s Cassandra Lucene Index Stratio’s Cassand ...

  10. Coolite Toolkit介绍

    Coolite Toolkit非常棒的控件   Coolite Toolkit介绍 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件. Coolite Toolkit是基 ...