WebView的简单使用
16lz
2021-01-24
关于WebView的一些简单设置,直接上代码:
布局文件:
java代码:
布局文件:
<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;@Overrideprotected 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() {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {// 加载页面时对话框提示if (dialog == null || !dialog.isShowing()) {dialog = new ProgressDialog(MainActivity.this);dialog.setMessage("正在加载中,请稍候...");}dialog.show();}@Overridepublic void onPageFinished(WebView view, String url) {dialog.dismiss();}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {super.shouldOverrideUrlLoading(view, url);view.loadUrl(url);return true;}});// 页面加载进度webView.setWebChromeClient(new WebChromeClient() {@Overridepublic 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() {@Overridepublic 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;}};};@Overridepublic 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);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// 处理返回事件,如果页面还可以回退,则回退页面,否则finishif (keyCode == KeyEvent.KEYCODE_BACK) {if (webView.canGoBack()) {webView.goBack();} else {finish();}return true;}return super.onKeyDown(keyCode, event);}}
更多相关文章
- android-短信发送器
- Android(安卓)高通平台camera hal层调试方法和命令
- unity Android(安卓)csv 数据持久化
- 20个Android很有用的代码片段
- RadioButton练习(android)
- android 反编译,反,注射LOG
- activity页面多次反复切换会变卡。
- Android(安卓)Studio加载字体
- 提示Android(安卓)requires compiler compliance level 5.0 or 6