学了WebView之后,心血来潮,写了这个简易的浏览器。虽然很简单,但是也查了不少没学到东西。大神就忽略吧。这里分享出来,给需要的人参考参考。

首先是我们的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#F5F5DC"android:orientation="vertical"><LinearLayoutandroid:layout_width="wrap_content"android:orientation="horizontal"android:layout_height="wrap_content"><EditTextandroid:id="@+id/text"android:autoText="true"android:singleLine="true"android:selectAllOnFocus="true"android:layout_marginTop="20dp"android:layout_width="300dp"android:layout_height="40dp"android:textColor="#FFA500"android:hint="@string/url"android:layout_gravity="left|top"/><Buttonandroid:id="@+id/button"android:layout_marginTop="20dp"android:layout_width="60dp"android:layout_height="40dp"android:text="@string/next"android:textColor="#FAEBD7"android:layout_gravity="right|top" /></LinearLayout><WebViewandroid:id="@+id/webview"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

代码简单,就是LinearLayou里面再套一个LinearLayou,加上一个edittext和button。下面就是一个WebView。edittext里面有些属性虽然我写了,但是没感觉出来用处。android:autoText="true"。自动补全,我感觉没有用处。android:singleLine="true"这个呢就是单行显示,也就是说,有些网址很长,我们只显示一行就行了。这个为后面的实时显示网址有用的。android:selectAllOnFocus="true"这个呢就是获取焦点,便于后面点edittext可以全选。

最后是重点啦,看看Java的代码。

package com.sorgs.administrator.webview;import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends Activity {private String url = null;private WebView webView;private ProgressDialog dialog;private EditText text;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Toast.makeText(this,"欢迎使用简易浏览器_by sorgs",Toast.LENGTH_SHORT).show(); //弹出欢迎init();}private void init() {webView = (WebView) findViewById(R.id.webview);text = (EditText) findViewById(R.id.text);button = (Button) findViewById(R.id.button);webView.loadUrl(url);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String str = text.getText().toString();  //去获取text中输入的网址url = "http://"+ str;webView.loadUrl(url);            //设置到webView中去}});//覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使网页可以再WebView中打开webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或者第三方浏览器打开view.loadUrl(url);return true;}//WebViewClient帮助WebView去处理一些页面控制和请求通知});//启用支持javaScriptWebSettings settings = webView.getSettings();settings.setJavaScriptEnabled(true);//WebView加载页面优先使用缓存加载settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {//newProgress 1-100之间的整数if (newProgress == 100) {//网页加载完毕,关闭ProgressDialogcloseDialo();} else {//网页正在加载,打开ProgressDialogopenDialog(newProgress);text.setText(webView.getUrl()); //实时显示当前网址text.requestFocus();           //把输入焦点放在调用这个方法的控件上text.setSelectAllOnFocus(true); //点击之后就被全选}}private void closeDialo() {if (dialog != null && dialog.isShowing()) {dialog.dismiss();dialog = null;}}private void openDialog(int newProgress) {if (dialog == null) {dialog = new ProgressDialog(MainActivity.this);dialog.setTitle("加载中...");dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);dialog.setProgress(newProgress);dialog.show();} else {dialog.setProgress(newProgress);}}});}@Override //改写物理按键——返回的逻辑public boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_BACK){if(webView.canGoBack()){webView.goBack();   //返回上一页面return true;}else {System.exit(0);}}return super.onKeyDown(keyCode,event);}}

代码中呢很多注释写的很详细了。这个就不在赘述了。
最后来几张效果图好啦。

最后谢谢大家的赏脸

Android 最最最简单的浏览器代码相关推荐

  1. 如何在 Android 中制作简单的浏览器

    我使用了一些 WebView 类的方法来执行以下功能. loadUrl():从 url 加载网页 canGoBack():检查前一页历史记录是否可用 goBack():返回上一页 canGoForwa ...

  2. android其实很简单 -- roaster 以代码构建代码

    今天看别人开源代码,有一个类怎么查也查不到,最后拉下来编译却能通过,一开始还以为用来反射,但代码里是直接引用. 后面去看了下gradle的依赖,发现了依赖roaster这库,很有意思 roaster

  3. python 开发gui浏览器_Python编程之gui程序实现简单文件浏览器代码

    #!/usr/bin/env python # -*- coding: UTF-8 -*- import os from time import sleep from Tkinter import * ...

  4. android 代码浏览,Webview实现android简单的浏览器实例代码

    WebView是Android中一个非常实用的组件,它和Safai.Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面,下面通过本文给大家介绍Webv ...

  5. 【Android】简单图片浏览器

    开始重新学习Android,还是依照<疯狂Android讲义>. 简单图片浏览器: 功能:图片浏览器,点击图片可以切换. 注意:在res/drawable中添加p1.jpg.p2.jpg. ...

  6. Android小程序(3)--简单图片浏览器

    简单图片浏览器 此使用的知识点是XML布局文件与Java代码的混合来控制UI界面. 首先在布局文件中定义简单的线性布局容器: <?xml version="1.0" enco ...

  7. Android实现有声计算器代码,android studio实现简单的计算器(无bug)

    本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下 1.效果图 2布局代码 3.逻辑代码 package com.example.myzhuoye; i ...

  8. android简单网页浏览器的开发

    android简单网页浏览器的开发 @author:郑海波 http://blog.csdn.net/nuptboyzhb/ 功能概要: 1.用WebView控件实现简单浏览器的开发 2.实现了网页浏 ...

  9. java判断浏览器杂项_java简单代码判断浏览器代码

    java简单代码判断浏览器代码 import java.util.regex.Matcher; import java.util.regex.Pattern; public class BrowseT ...

  10. android代码设置弹窗颜色,Android编程实现简单设置按钮颜色的方法

    本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...

最新文章

  1. GitLab 8.15中引入了自动部署和Web终端
  2. C#学习之三层架构实例
  3. 《大道至简》的幕后故事
  4. 初学ctypes:打开进程并返回相关信息
  5. [C++][IO]读写二进制文件
  6. html css position,[CSS]CSS Position 详解
  7. windows2003管理组创建
  8. 前端项目开发流程(附思维导图PC)
  9. ubuntu服务器系统进入安全模式,ubuntu bios 无法进入安全模式
  10. ROS:TF,机器人坐标管理神器
  11. mysql io线程 原理_MySQL IO线程及相关参数调优
  12. AD9854 MSP430 代码总结
  13. Ant Design Vue DatePicker 日期选择框 限制可选时间
  14. 若依 / RuoYi-Vue 前后端分离,前端部署及注意事项
  15. 计算机电路基础重要知识点,计算机电路基础期末复习指导.DOC
  16. 牛客网之SQL---持续更新
  17. CATIA V5R20电气线束设计从入门到精通视频教程
  18. 应用人工智能技术提供重要的交流平台
  19. 历史上著名的三次崩盘
  20. Spring中的模板模式

热门文章

  1. linux realtek声卡驱动下载,一步一步安装Realtek ALC888、ALC1200 声卡(附Realtek ALC888 ALC1200驱动)...
  2. Oracle VM VirtualBox虚拟机新建教程(包括镜像文件的下载和安装)
  3. c4d语言在哪个文件夹,c4d的插件目录是哪个文件夹(c4d插件怎么安装)
  4. 用C语言编写一个关机程序
  5. HTML5 Audio时代的MIDI音乐文件播放 .
  6. php 网页对话框插件,JavaScript_jquery插件hiAlert实现网页对话框美化,厌烦了IE浏览器的警告窗,伴 - phpStudy...
  7. 如何备考软考中级-系统集成项目管理工程师
  8. 完美解决.CHM文件打不开或者打开以后显示空白的情况
  9. 客所思S10外置USB独立声卡调试教程:K歌、聊天、变声、喊麦、电音等效果
  10. 从Simulink到PX4——Simulink-PX4插件安装与环境搭建