我是Android应用程序的新手....
使用webview显示html页面时,
在完成渲染之前会有几秒钟的空白页。
为了获得更好的用户体验,有没有办法让它在几秒钟内显示加载图像?
package com.example.gds.grocerydoorstep;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://google.com");
myWebView.setWebViewClient(new WebViewClient());
}
public void onBackPressed() {
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
super.onBackPressed();
}
}
}
<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.gds.grocerydoorstep.MainActivity">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView" />
</RelativeLayout>
答案 0 :(得分:0)
你应该创建一个自定义的WebViewClient并覆盖onPageStarted和onPageFinished。
以下是示例代码:
public class CustomWebViewClient extends WebViewClient {
...
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//TODO: show progress bar here
}
@Override
public void onPageFinished(WebView view, String url) {
//TODO: hide progress bar here
}
...
}
不要忘记设置自定义WebViewClient:
myWebView.setWebViewClient(new CustomWebViewClient());