WebView的简单使用
关于WebView的一些简单设置,直接上代码:
布局文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.calendar.MainActivity" tools:ignore="MergeRootFrame" > <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> <ProgressBar android:id="@+id/progressBar" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" /> </FrameLayout>
java代码:
public class MainActivity extends Activity { private ProgressDialog dialog; private WebView webView; private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressBar = (ProgressBar) findViewById(R.id.progressBar); webView = (WebView) findViewById(R.id.webview); WebSettings settings = webView.getSettings(); // 设置缩放允许 settings.setBuiltInZoomControls(true); settings.setSupportZoom(true); // 设置初始比例 // webView.setInitialScale(50); // 设置加载进来的页面自适应手机屏幕 settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); // 设置使用内置浏览器打开 webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // 加载页面时对话框提示 if (dialog == null || !dialog.isShowing()) { dialog = new ProgressDialog(MainActivity.this); dialog.setMessage("正在加载中,请稍候..."); } dialog.show(); } @Override public void onPageFinished(WebView view, String url) { dialog.dismiss(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { super.shouldOverrideUrlLoading(view, url); view.loadUrl(url); return true; } }); // 页面加载进度 webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); Message msg = new Message(); msg.what = 200; msg.obj = newProgress; handler.sendMessage(msg); } }); webView.loadUrl("http://www.zjut.edu.cn"); // 重新加载,刷新 // webView.reload(); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 200: int progress = (Integer) msg.obj; progressBar.setProgress(progress); if (progressBar.getProgress() == 100) { progressBar.setVisibility(View.GONE); } break; } }; }; @Override public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_MOVE: if (webView.getScrollY() == 0) { // 滑动到顶部 System.out.println("滑动到顶部....."); } if ((int) (webView.getContentHeight() * webView.getScale()) == (webView .getHeight() + webView.getScrollY())) { // 滑动到底部 System.out.println("滑动到底部....."); } break; } return super.dispatchTouchEvent(ev); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 处理返回事件,如果页面还可以回退,则回退页面,否则finish if (keyCode == KeyEvent.KEYCODE_BACK) { if (webView.canGoBack()) { webView.goBack(); } else { finish(); } return true; } return super.onKeyDown(keyCode, event); } }
相关推荐
dangai00 2020-07-18
xhpscdx 2020-05-31
chenxiangpeng 2020-04-30
ncuboy0wsq 2020-03-27
学习web前端 2020-03-23
APCDE 2020-03-04
歆萌 2020-03-03
csdnuuu 2020-01-04
水龙吟的备忘录 2019-11-18
icewizardry 2014-04-10
元元 2019-11-17
androidstudyroom 2019-11-08
czpaex 2011-09-11
OldSoldier 2011-08-18
wangdaiying 2011-05-26
qixiang0 2019-08-24