android webview获取内容高度
时间: 2023-11-09 21:06:49 浏览: 151
您可以通过WebView的getContentHeight()方法来获取WebView中内容的高度。具体实现如下所示:
```java
WebView webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// 页面加载完成后获取内容高度
int contentHeight = view.getContentHeight();
// TODO: 处理获取到的内容高度
}
});
```
在WebView加载完成后,可以调用getContentHeight()方法获取内容高度,然后根据实际需要进行处理。值得注意的是,getContentHeight()方法返回的是像素值,需要根据设备的屏幕密度进行转换。
相关问题
android获取webview内容高度
你可以通过以下代码获取 WebView 的内容高度:
```
WebView webView = findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
int height = webView.getContentHeight();
// 这里的 height 即为 WebView 内容的高度
}
});
webView.loadUrl("http://www.example.com");
```
在 `onPageFinished` 方法中,我们可以获取 WebView 的内容高度。请注意,这个高度并不是 WebView 控件的高度,而是网页内容的实际高度。如果你想要设置 WebView 的高度,需要根据内容高度来进行计算和设置。
android获取webview高度
你可以使用 `WebView` 的 `getHeight()` 方法来获取 `WebView` 的高度。但是,这个方法只会返回 `WebView` 的布局高度,并不会包含 `WebView` 加载的内容的高度。
为了获取 `WebView` 加载的内容的高度,你需要在 `WebView` 加载完成后使用 `JavaScript` 来获取内容的高度,然后再将其传递给 `Android` 端。以下是一个示例代码:
```java
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 获取 WebView 内容的高度
view.evaluateJavascript("(function() { return document.body.scrollHeight; })();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
// 将内容高度传递给 Android 端
int contentHeight = Integer.parseInt(value);
// do something with contentHeight
}
});
}
});
```
在上面的代码中,我们使用 `evaluateJavascript()` 方法来执行 `JavaScript` 代码,并在其中返回 `document.body.scrollHeight`,即内容的高度。然后,我们通过 `ValueCallback` 将内容的高度传递给 `Android` 端。
阅读全文