我想说明好康内部的WebView。 截至本是罚款。
但我有网页(如下面给出的),我想它的某一部分。 我的意思只是左上角应在所有的设备是适合屏幕模式显示。
我解决这个问题,因为最后两三天。
我想:我要显示网页的左上角内网页视图显示由无论Stratergy可能变焦或任何其他选项,但它应该是适合屏幕的所有设备。
还有一件事我不能改变网页的源代码,因为它是固定的。 我有代码本身来管理。
我曾尝试:我有参考链接#1,但没有运气。
这里是我的代码。 :
WebView wv;
wv = (WebView) findViewById(R.id.webview_MyPoops);
wv.getSettings().setJavaScriptEnabled(true);
// wv.setInitialScale(185);
// wv.setInitialScale(30);
String URL = "MY_LINK";
wv.loadUrl(URL);
WebSettings webSettings = wv.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
我得到的装置上显示完整的网页。
它在我的LG设备工作正常(其中有480 * 800分辨率),但在大的设备或标签像银河TAB2,我越来越左上角的非常小的图像和屏幕的所有其他地区的网页的只是背景。
以下是银河TAB2的运行上面的代码后的截图。 请有你,我欠缺的任何建议。 提前致谢。
与此代码尝试跳这项工作妳。
webview.setInitialScale(getScale());
private int getScale(){
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
Double val = new Double(width)/new Double(200);
Log.e("hh", "** "+val);
val = val * 100d;
Log.e("hh", "** "+val);
return val.intValue();
}
WebView x;
x.setInitialScale(1);
这是furtheset放大成为可能。 但是,对于一些网站,它只是看起来纯粹的丑陋。
这是第二个版本,我发现
test1.getSettings().setDefaultZoom(ZoomDensity.FAR);
这就是一个很好的多面手比似乎只是缩小远远不够了很多,但仍然不是我所期待的。
喏,这就是最终的解决方案,我有。
x.getSettings().setLoadWithOverviewMode(true);
x.getSettings().setUseWideViewPort(true);
基本上,这些做什么在这样的另一个问题是回答。
setLoadWithOverviewMode(true)
加载web视图完全缩小
setUseWideViewPort(true)
你可以尝试使用HtmlCleaner (如何使用它的例子在这里 ),以获得从网页中的HTML,然后提取要显示并将其加载到使用的WebView部分: WebView.loadData();
。
我在应用程序中的一个使用这种方法重新格式化网页,这样它会更容易在移动设备上使用。
在HTML页面,您可以有类似target-densitydpi=240;
根据设备类型只是设置该参数从Java代码,页面会自动适应目标密度。
我相信修补程序应该只在网页级别上进行,理想WebView
不能在这里做什么花招。 WebView
是一个简单的浏览器(具体Chromium浏览器),这应该只是做渲染该网页的指示。
为了真正解决您的问题,你应该尝试修改网页的CSS。
文章来源: How to show Certain Part of WebPage inside Webview With Fit Screen to All Devices