Android控件之WebView

  如何在Android应用中打开Web网站呢?谷歌为我们提供了解决方案,现在就让我们一起看一下WebView控件吧。

  为了方便总结,就以实现下面这个效果为主线,进行总结:

技术分享

  首先我们先看一下它的布局文件吧,整个界面分为上下两个部分,上部是一个类似于标题栏的效果,它是由两个Button按钮和一个TextView组成的,下部是一个WebView控件,通过AndroidManifest.xml去除系统的标题(如有不懂,请查阅我的上一遍博客:Android常用属性),已达到上图效果。为方便大家自学,下面奉上代码:

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="1">
        <Button
            android:id="@+id/quit"
            android:layout_gravity="left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="返回"/>
        <TextView
            android:id="@+id/web"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_width="222dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.13" />
        <Button
            android:id="@+id/news"
            android:layout_gravity="right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="刷新"/>
    </LinearLayout>
    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

</LinearLayout>

  最后我们开始编写我们MainActivity.java:

public class MainActivity extends Activity {
    private TextView mTextView;
    private WebView mWebView;
    private Button mbreak;
    private Button mnews;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    public void init(){
        mTextView = (TextView)findViewById(R.id.web);
        mWebView = (WebView)findViewById(R.id.webView);
        mbreak = (Button)findViewById(R.id.quit);
        mnews = (Button)findViewById(R.id.news);
        mbreak.setOnClickListener(new myListener());
        mnews.setOnClickListener(new myListener());
        mWebView.loadUrl("http://www.baidu.com/");//设置打开的网址

        mWebView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                mTextView.setText(title);//显示打开的网址信息
            }
        });

        mWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
    }

    //按钮点击事件监听
    class myListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.quit :
                    finish();
                    break;
                case R.id.news :
                    mWebView.reload();
                    break;
            }
        }
    }

  最后不要忘在AndroidManifest.xml中添加使用网络声明:<uses-permission android:name="android.permission.INTERNET"/>

  大功告成,我们的WebView初步介绍到此结束。

 

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。