Android 最最最简单的浏览器代码
2016-08-04 12:05
435 查看
学了WebView之后,心血来潮,写了这个简易的浏览器。虽然很简单,但是也查了不少没学到东西。大神就忽略吧。这里分享出来,给需要的人参考参考。
首先是我们的xml
最后是重点啦,看看Java的代码。
代码中呢很多注释写的很详细了。这个就不在赘述了。
最后来几张效果图好啦。
最后谢谢大家的赏脸
首先是我们的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"> <LinearLayout android:layout_width="wrap_content" android:orientation="horizontal" android:layout_height="wrap_content"> <EditText android: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"/> <Button android: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> <WebView android: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; @Override protected 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() { @Override public void onClick(View v) { String str = text.getText().toString(); //去获取text中输入的网址 url = "http://"+ str; webView.loadUrl(url); //设置到webView中去 } }); //覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使网页可以再WebView中打开 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或者第三方浏览器打开 view.loadUrl(url); return true; }//WebViewClient帮助WebView去处理一些页面控制和请求通知 }); //启用支持javaScript WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); //WebView加载页面优先使用缓存加载 settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { //newProgress 1-100之间的整数 if (newProgress == 100) { //网页加载完毕,关闭ProgressDialog closeDialo(); } else { //网页正在加载,打开ProgressDialog openDialog(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); } }
代码中呢很多注释写的很详细了。这个就不在赘述了。
最后来几张效果图好啦。
最后谢谢大家的赏脸
相关文章推荐
- Webview实现android简单的浏览器实例代码
- abap--一个简单类浏览器的代码(等有空继续完善)
- Android JNI简单实例(android 调用C/C++代码)
- [Android] MonkeyRunner 基本的简单的测试代码
- 在android源码中调试系统浏览器代码
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段
- abap--一个简单类浏览器的代码(等有空继续完善)
- Android之Box2D学习(二)——简单的跑跳游戏模型(含代码)
- Android JNI简单实例(android 调用C/C++代码)
- Android 简单Activity和Service的交互代码
- android 使用代码打开浏览器访问网页
- Android NDK JNI 的环境搭建以及简单的代码
- Android EditText聚焦时hint消失的简单代码
- Android超炫图片浏览器代码
- android leds简单代码总结
- abap--一个简单类浏览器的代码(等有空继续完善)
- Android常用的简单代码
- 最简单的浏览器检测JavaScript代码
- 【糟糕的代码】Android的第一个程序:简单的皮肤更换测试
- android 简单代码