android webview sdk app tutorial 01 界面

此文版權屬於作者所有,任何人、媒體或者網站轉載、借用都必須徵得作者本人同意!

界面效果如下:


完全使用代碼實現

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
    private final static int TITLE_BAR_ID = 1;
    private final static int OPEN_BTN_ID = 101;

    private final static String START_URL = "http://www.uc.cn";

    private RelativeLayout mBaseLayout;
    private EditText mUrlView;
    private Button mOpenBtn;
    private WebView mWebView;

    private void initCtrl() {
        mBaseLayout = new RelativeLayout(this);
        mBaseLayout.setBackgroundColor(Color.WHITE);

        // title bar

        RelativeLayout titleBar = new RelativeLayout(this);
        titleBar.setId(TITLE_BAR_ID);
        {
            mOpenBtn = new Button(this);
            mOpenBtn.setId(OPEN_BTN_ID);
            mOpenBtn.setText("open");
            mOpenBtn.setOnClickListener(mOnOpenBtnClicked);
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            titleBar.addView(mOpenBtn, lp);
        }
        {
            mUrlView = new EditText(this);
            mUrlView.setBackgroundColor(Color.LTGRAY);
            mUrlView.setText(START_URL);
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            lp.addRule(RelativeLayout.LEFT_OF, OPEN_BTN_ID);
            titleBar.addView(mUrlView, lp);
        }
        {
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            mBaseLayout.addView(titleBar, lp);
        }

        // webview
        {
            mWebView = new WebView(this);
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
            lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            lp.addRule(RelativeLayout.BELOW, TITLE_BAR_ID);
            mBaseLayout.addView(mWebView, lp);
        }

        setContentView(mBaseLayout);
    }

    private View.OnClickListener mOnOpenBtnClicked = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mWebView.loadUrl(mUrlView.getText().toString());
            InputMethodManager imm =
                (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initCtrl();

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mWebView.setWebViewClient(new WebViewClient());

        mWebView.loadUrl(START_URL);
    }
}


使用 layout xml 實現

<?xml version="1.0" encoding="utf-8"?>
<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="@android:color/white">

    <RelativeLayout
        android:id="@+id/titleBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@android:color/darker_gray">

        <EditText
            android:id="@+id/url"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/open"
            android:text="@string/start_url"/>

        <Button
            android:id="@+id/open"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:text="@string/open"/>
    </RelativeLayout>

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/titleBar" />

</RelativeLayout>

對應的控制代碼

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
    private EditText mUrlView;
    private Button mOpenBtn;
    private WebView mWebView;

    private View.OnClickListener mOnOpenBtnClicked = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mWebView.loadUrl(mUrlView.getText().toString());
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
        }
    };

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

        mUrlView = (EditText) findViewById(R.id.url);
        mOpenBtn = (Button) findViewById(R.id.open);
        mWebView = (WebView) findViewById(R.id.webview);

        mOpenBtn.setOnClickListener(mOnOpenBtnClicked);

        mWebView.setWebViewClient(new WebViewClient());

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mOnOpenBtnClicked.onClick(mOpenBtn);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章