使用java加载垂直滚动网页后,有什么方法可以获取Android WebView内容宽度?
问问题
8884 次
3 回答
7
如果您可以选择扩展使用的 WebView,您还可以尝试受保护的方法 computeHorizontalScrollRange() 的输出。
更新:我忘了提到只有在内容大于 webview 时才能正常工作。
class YourCustomWebView extends WebView {
public YourCustomWebView(Context context) {
super(context);
}
public int getContentWidth()
{
return this.computeHorizontalScrollRange();
}
}
public void onPageFinished(WebView page, String url) {
Log.v(LOG_TAG,"ContentWidth: " + ((YourCustomWebView) page).getContentWidth());
}
于 2014-02-25T14:48:53.023 回答
4
加载 HTML 后,您需要 WebView CONTENTS 的宽度和高度。是的,但是没有 getContentWidth 方法(只有一个视口值),并且 getContentHeight() 不准确!
答:子类WebView:
/*
Jon Goodwin
*/
package com.example.html2pdf;//your package
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
class CustomWebView extends WebView
{
public int rawContentWidth = 0; //unneeded
public int rawContentHeight = 0; //unneeded
Context mContext = null; //unneeded
public CustomWebView(Context context) //unused constructor
{
super(context);
mContext = this.getContext();
}
public CustomWebView(Context context, AttributeSet attrs) //inflate constructor
{
super(context,attrs);
mContext = context;
}
public int getContentWidth()
{
int ret = super.computeHorizontalScrollRange();//working after load of page
rawContentWidth = ret;
return ret;
}
public int getContentHeight()
{
int ret = super.computeVerticalScrollRange(); //working after load of page
rawContentHeight = ret;
return ret;
}
//=========
}//class
//=========
于 2016-07-24T19:21:52.353 回答
0
请检查,http://android.pimmos.com/2011/03/24/how-to-retrieve-the-contentwidth-of-a-webview/
有webview.getContentHeight();
获取内容高度的方法。没有获取内容宽度的方法。您可以使用 javascript 来做到这一点,并使用 JavaScriptInterface 从 javascript 中获取它。由于您是从 assets 文件夹加载的,因此您可以轻松添加 javascript 函数并制作 JavascriptInterface。
于 2013-10-30T06:19:44.957 回答