网页源代码查看器

目录

网页源代码查看器

一、项目目录结构

二、类:MainActivity

三、类:Utils

四、activity_main.xml

五、AndroidManifest.xml(加入网络权限)


一、项目目录结构

二、类:MainActivity

package com.example.day0801;import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;import org.apache.http.HttpConnection;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {private EditText ed_url;private Button bt_look;private TextView tv_url;//创建一个Handler,在主线程的消息处理private   Handler handler = new Handler() {public void handleMessage(Message msg) {tv_url.setText(msg.obj.toString());//Toast.makeText(MainActivity.this, "-----handleMessage----", Toast.LENGTH_SHORT).show();System.out.println("--yuansheng--msg.obj.toString():"+msg.obj.toString());}; };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed_url = (EditText)findViewById(R.id.ed_url);bt_look = (Button)findViewById(R.id.bt_look);tv_url = (TextView)findViewById(R.id.tv_url);//ed_url.setText("http://10.0.2.3:8080");//测试ok,但是需要将模拟器的通过adb shell的【setprop net.dns1 192.168.1.1】命令ip设置为192.168.1.1ed_url.setText("https://www.baidu.com");   bt_look.setOnClickListener(new MyOnClickListener());}class MyOnClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// Android 4.0 之后联网不能在主线程中请求HTTP请求,只能在子线程联网new Thread(){public void run() {try {//!!!!!!!Toast消息不能在子线程中出现//Toast.makeText(MainActivity.this, "-----点击----", Toast.LENGTH_SHORT).show();//获取urlString urlstr = ed_url.getText().toString().trim();//Toast.makeText(MainActivity.this, urlstr, Toast.LENGTH_SHORT).show();URL url = new URL(urlstr);//URL url = new URL("http://10.0.2.3:8080");HttpURLConnection openConnection = (HttpURLConnection)url.openConnection();openConnection.setRequestMethod("GET");openConnection.setConnectTimeout(10000);//获取响应码int responseCode = openConnection.getResponseCode();//Toast.makeText(MainActivity.this, "responseCode"+responseCode, Toast.LENGTH_SHORT).show();System.out.println("--yuansheng--responseCode:"+responseCode);if(responseCode == 200) {InputStream inputStream = openConnection.getInputStream();String stringformStream = Utils.getStringformStream(inputStream);System.out.println("--yuansheng--stringformStream:"+stringformStream);//UI操作必须在主线程,所以,主线程也叫UI线程//tv_url.setText(stringformStream);Message message = new Message();message.obj = stringformStream;handler.sendMessage(message);}//Toast.makeText(MainActivity.this, "-----点击完----", Toast.LENGTH_SHORT).show();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("--yuansheng--Exception:"+e);}}}.start();}}
}

三、类:Utils

package com.example.day0801;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;public class Utils {public static String getStringformStream(InputStream inputStream) {int len = -1;ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();byte[] byteArray = new byte[1024];try {while((len = inputStream.read(byteArray)) != -1) {byteArrayOutputStream.write(byteArray, 0, len);}inputStream.close();byte[] array = byteArrayOutputStream.toByteArray();return new String(array);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}}

四、activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.day0801.MainActivity" ><EditText android:id="@+id/ed_url"android:layout_height="wrap_content"android:layout_width="match_parent"android:hint="请输入url!"android:inputType="textUri"/><Buttonandroid:id="@+id/bt_look" android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_below="@id/ed_url"android:text="确定"/><ScrollView android:layout_below="@id/bt_look"android:layout_height="wrap_content"android:layout_width="match_parent"><TextView android:id="@+id/tv_url"android:layout_height="match_parent"android:layout_width="match_parent"android:background="#FFB6C1"/></ScrollView>
</RelativeLayout>

五、AndroidManifest.xml(加入网络权限)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.day0801"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="17"android:targetSdkVersion="17" /><uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

Android:访问网络资源,在手机本地显示网络资源源代码相关推荐

  1. Android需求2 -- MTK手机内存显示和清除后台

    Android需求2 设置中增加一个一级菜单显示内存信息,进入后的界面可自己定义,显示当前已用内存和手机总内存,同时还有一个按钮,点击按钮清理掉除设置外的所有后台应用. 系统内置的方法的获取内存的方法 ...

  2. Android app图标在手机桌面显示过小

    开发中,app安装在手机之后,图标明显比其他app的图标要小,开始认为与手机设备有关,后经检查后发现与手机分辨率有关,出问题的为三星手机1080p,Android会根据手机分辨率自动到相应的文件夹下( ...

  3. Android 10 加载手机本地图片

    Android 10由于文件权限的关系不能使用图片路径直接加载手机储存卡内的图片,除非图片是在应用的私有目录下,所以在Android 10以后,下面的代码无法加载图片. Bitmap bitmap = ...

  4. Android通过url下载图片到手机本地并显示和删除本地ImageUtil工具类

    文章目录 布局 Activity BroadcastReceiver 文件工具类 图片工具类 Manifest MyApplication 完成代码下载 这里的demo是一个通过下载地址下载图片文件到 ...

  5. Android获取手机本地图片并显示

    一.序言 在安卓开发过程中,有时候我们的应用需要使用手机本地图片,这就需要本地图片访问权限以及相关的获取方法,本文将手机本地图片的获取流程和代码做了一个总结,希望能够对大家有一定帮助: 二.功能分析 ...

  6. Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文 ...

  7. Android访问网络资源

    Android访问网络资源 当我们写AndroidAPP的时候,一定会考虑一个很重要的问题,那就是如何让APP能调用网上的其他资源呢?这时候就需要用到URL(Uniform Resource Loca ...

  8. android手机 不显示本地视频,Android手机,如何使用VR观看本地视频?

    全部展开 需要准备两个工具: 第一个是VR眼镜手机本地视频播放器,可以在市场上购买或购买. 第二个是VR软件,它是用于播放VR视频的软件,例如3D广播,Orange VR等. 以下是通过3D广播进行操 ...

  9. WORKGROUP无法访问,您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。

    "网上邻居"无法互访问题解决方法大全    总结起来基本上有下面的几个: 1,没有共享资源/共享服务未启用. 症状:电脑与电脑间可以Ping通,但无法访问共享资源,在"计 ...

最新文章

  1. MYSQL中LIMIT用法_后台分页
  2. 英文关键词计算tf-idf 余弦相似度_TFIDF原理与实践
  3. 数据结构实验之链表九:双向链表
  4. 【Python基础】Python十大文件骚操作!!
  5. 【轉】JAVA中isEmpty和null以及的区别
  6. 福禄克DSX系列教你如何测试铜缆跳线和光纤跳线
  7. mybatis一次可以执行多个sql语句
  8. python图书管理系统增删改查_图书管理系统---增删改查
  9. 编程时程序无错却崩溃_程序员极度崩溃的 60 个瞬间,看到哪一个你哭了?
  10. C++程序设计(三:可视化)
  11. IpV6 linux RedHat5
  12. 作业题---设计一个类,求和的方法,求乘积的方法
  13. IGBT芯片赛道竞争激烈,水光半导体Wassersun推出全新IGBT制程技术
  14. 番外篇:常见安全漏洞及解决方案
  15. Matlab绘制运动想象ERD/ERS分析法图像
  16. 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!
  17. norton杀毒软件与木马克星有冲突
  18. juniper防火墙基于路由的IPsec ***配置
  19. 厉建宇的阿里巴巴离职信
  20. 华为手机双击确认怎么取消_华为双击屏幕放大怎么取消

热门文章

  1. I/O重定向的原理和实现
  2. EIGRP路由协议的简单理解及应用
  3. hbase 集群(完全分布式)方式安装
  4. JS创建表单提交备份
  5. 单选按钮用法, 选择的值
  6. 租车信息系统数据库设计(2)
  7. DataTable类(MSDN)
  8. CentOS被攻击的分析过程
  9. 大觉寺到鹫峰线路_大觉寺到鹫峰怎么走
  10. Intellij IDEA 安装插件 报 ‘plugin xxxx is incompatible‘ 解决方案