Android中WebView的使用

来源:互联网 发布:淘宝 男装 原单 编辑:程序博客网 时间:2024/05/20 23:05

一,功能介绍

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

实现WebView的显示网页,并实现返回,下一步,刷新,主页,退出功能

二,示例代码

代码备注很清楚。

 需要在manifest里面添加网络连接的权限。<uses-permission android:name="android.permission.INTERNET"></uses-permission>

WebViewActivity代码如下:

public class WebViewActivity extends AppCompatActivity {    @BindView(R.id.web)//黄油刀的find,ID    WebView webView;    @BindView(R.id.pb)    ProgressBar progressBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_web_view);        ButterKnife.bind(this);//绑定黄油刀        webView.loadUrl("http://www.baidu.com");        // 启用支持javascript        WebSettings settings = webView.getSettings();        settings.setJavaScriptEnabled(true);        // web加载页面优先使用缓存加载        settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);        webView.setWebViewClient(new WebViewClient(){            // 覆盖webView默认通过系统或者第三方浏览器打开网页的行为            // 如果为false调用系统或者第三方浏览器打开网页的行为            @Override            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {                view.loadUrl("http://www.baidu.com");                return true;            }        });        //进度条的监听        webView.setWebChromeClient(new WebChromeClient(){            @Override            public void onProgressChanged(WebView view, int newProgress) {//这里的newProgress是进度条的百分比值                progressBar.setProgress(newProgress);                if (newProgress==0){                    progressBar.setVisibility(View.VISIBLE);                }else if(newProgress==100){                    progressBar.setVisibility(View.GONE);                }            }        });    }    @OnClick(R.id.back)//相当于监听    public void back(){//返回        if (webView.canGoBack()){//判断是否返回到最后一个页面            webView.goBack();//返回        }else {            finish();        }    }    @OnClick(R.id.next)    public void next(){//下一页        if (webView.canGoForward()) {            webView.goForward();//下一页        }    }    @OnClick(R.id.flush)    public void flush(){        webView.reload();//刷新    }    @OnClick(R.id.home)    public void home(){//主页        webView.loadUrl("http://www.baidu.com");    }    @OnClick(R.id.exit)    public void exit(){//退出        finish();//退出    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {//改变物理返回键的逻辑        if (keyCode==event.KEYCODE_BACK){//判断按的是否是返回键            if (webView.canGoBack()){//判断是否返回到最后一个页面                webView.goBack();//返回                return true;            }else {                finish();            }        }        return super.onKeyDown(keyCode, event);    }}

activity_web_view布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_web_view"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="readgroup.zhuoxin.com.myitems.WebView.WebViewActivity">    <ProgressBar        android:id="@+id/pb"        android:layout_width="match_parent"        android:layout_height="10dp"        android:max="100"        style="?android:attr/progressBarStyleHorizontal"<!--设置ProgressBar为横向-->        android:progress="0"        android:background="@null"        android:progressDrawable="@drawable/webview"        /><!--背景颜色-->    <WebView        android:id="@+id/web"        android:layout_weight="1"        android:layout_width="match_parent"        android:layout_height="wrap_content"></WebView>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <Button            android:id="@+id/back"            android:layout_weight="1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="返回"            />        <Button            android:id="@+id/next"            android:layout_weight="1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="下一页"            />        <Button            android:id="@+id/flush"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="刷新"            />        <Button        android:id="@+id/home"        android:layout_weight="1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="主页"        />        <Button            android:id="@+id/exit"            android:layout_weight="1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="退出"            />    </LinearLayout></LinearLayout>

ProgressBar设置背景,webview代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <!-- background -->    <item        android:id="@android:id/background">        <shape>            <corners android:radius="3dp"></corners><!--圆角-->            <solid android:color="@color/colorsolid"></solid><!--背景色-->        </shape>    </item>    <!-- progress -->    <item android:id="@android:id/progress">        <clip>            <shape>                <corners android:radius="3dp"></corners><!--圆角-->                <solid android:color="@color/brek"></solid><!--背景色-->            </shape>        </clip>    </item></layer-list>

三,效果图

这里写图片描述
如遇有错的地方,希望博友们多多指出!

0 0
原创粉丝点击