安卓webView简介

安卓提供了webView组件,webView本身就是一个浏览器的实现,它的内核基于开源webKit引擎。

使用webView浏览网页

webView的用法和ImageView组件的用法基本相似,常用的用法:
void goBack(); //后退
void goForward(); //前进
Void loadUrl(String url); //加载指定的url网页
等等

使用webView加载有道网页实例

1,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:background="@drawable/main_bg"
    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=".MainActivity" >

    <EditText
        android:id="@+id/et_word"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="20dp"
        android:background="@android:drawable/edit_text"
        android:ems="10"
        android:singleLine="true"
        android:textColor="#552006"
        android:textColorHint="#782f10" >
        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnSearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="搜索"
        android:layout_toRightOf="@id/et_word"
        android:layout_alignTop="@id/et_word"
        android:layout_marginLeft="5dp"

        />

    <WebView
        android:id="@+id/wvSearchResult"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignLeft="@+id/etWord"
        android:layout_below="@+id/et_word"
        android:layout_marginTop="22dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="25sp" />

</RelativeLayout>

2,MainActivity代码

public class MainActivity extends Activity {
    private EditText ed_word =null;
    private Button search =null;
    private WebView web =null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        search.setOnClickListener(new OnClickListener() {
            String strURL;
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String str_word =ed_word.getText().toString();
                if(str_word!=null){
                    str_word =str_word.trim(); //去除一下空格
                     strURL = "http://dict.youdao.com/m/search?keyfrom=dict.mindex&q="
                            + str_word; //组成请求的url
                    //加载网页
                    web.loadUrl(strURL);
                    web.setWebViewClient(new WebViewClient(){
                        @Override
                        public boolean shouldOverrideUrlLoading(WebView view,
                                String url) {
                            // TODO Auto-generated method stub
                            view.loadUrl(url);//不跳到系统浏览器
                            return true;
                        }
                    });
                    //进度条
                    web.setWebChromeClient(new WebChromeClient(){
                        public void onProgressChanged(WebView view, int newProgress) {

                            MainActivity.this.setProgress(newProgress*100);//设置进度条
                        };
                    });

                }else {
                    Toast.makeText(MainActivity.this,"单词不能为空!" , 3000);
                }


            }
        });
    }
    private void initView() {
        // TODO Auto-generated method stub
        ed_word =(EditText)findViewById(R.id.et_word);
        search =(Button) findViewById(R.id.btnSearch);
        web =(WebView)findViewById(R.id.wvSearchResult);
    }    
}

加入访问网络的权限:

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

3运行效果图:
这里写图片描述

这里写图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐