webview 实现加载动画
时间: 2023-10-25 12:03:32 浏览: 204
WebView 实现加载动画一般有以下几种方式:
1. 使用 WebViewClient 的 onPageStarted 和 onPageFinished 方法来监听页面加载的开始和结束事件,在 onPageStarted 时展示加载动画,在 onPageFinished 时隐藏加载动画。例如:
```java
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// 显示加载动画
// ...
}
@Override
public void onPageFinished(WebView view, String url) {
// 隐藏加载动画
// ...
}
});
```
2. 通过 JavaScript 和 WebView 的 addJavascriptInterface 方法来实现加载动画。在页面加载开始时通过 JavaScript 通知客户端展示加载动画,在页面加载结束时再通知客户端隐藏加载动画。例如:
```java
public class JsInterface {
@JavascriptInterface
public void showLoadingAnimation() {
// 显示加载动画
// ...
}
@JavascriptInterface
public void hideLoadingAnimation() {
// 隐藏加载动画
// ...
}
}
webView.addJavascriptInterface(new JsInterface(), "jsInterface");
```
在页面的 JavaScript 代码中可以通过 `jsInterface.showLoadingAnimation()` 和 `jsInterface.hideLoadingAnimation()` 调用客户端的方法来展示和隐藏加载动画。
3. 通过在 WebView 中嵌套添加 ProgressBar 来实现加载动画。在 onPageStarted 时显示 ProgressBar,onPageFinished 时隐藏 ProgressBar。例如:
```java
ProgressBar progressBar = findViewById(R.id.progress_bar);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// 显示 ProgressBar
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
// 隐藏 ProgressBar
progressBar.setVisibility(View.INVISIBLE);
}
});
```
以上是一些常见的实现加载动画的方式,开发者可以根据具体需求进行选择和实现。
阅读全文