是否可以在 WebView 中加载 URL 并调整其大小以适应屏幕?我的意思是我想让网页变小,这样用户就不需要滚动了。这可能吗?
10 回答
您也可以尝试设置相同的布局算法。它对我有用
webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
将初始比例设置为 1。然后它会放大以填满屏幕。还没有测试过它是如何在非常大的网站上工作的(例如,有很多评论的博客文章),但它正在一个 Droid X 和一个带有标准网页的 HTC Aria 上工作。
WebView.setInitialScale(1);
我将继续使用不同的网页进行测试,但到目前为止,这是我为这个问题找到的最佳解决方案。
编辑:在 Droid X 和 Aria 上都用过长的网页进行了测试,并在两者上都取得了积极的结果。将初始比例设置为 0 似乎会关闭整个事情,导致初始比例为 100。我对这些结果感到满意,希望这有助于其他人在这个问题上苦苦挣扎。
wb.getSettings().setLoadWithOverviewMode(true);
wb.getSettings().setUseWideViewPort(true);
webview_settings.setLoadWithOverviewMode(true);
webview_settings.setUseWideViewPort(true);
webview_settings.setBuiltInZoomControls(true);
您是否尝试过WebView.zoomOut()
反复调用直到它返回false
?
另外,我要指出,您要使用的这种技术实际上依赖于非常短的网页。如果页面很长并且您缩小以使其完全适合屏幕,则用户将需要非常好的视力!;)
通过执行以下操作,我能够将整个页面包含在我的视图中。首先将宽度和高度设置为wrap_content。然后将初始比例设置为如下所示:
WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview);
webview.setInitialScale(1);
我发现我可以通过执行以下操作将宽度保持在显示可读字体所需的最小值,然后每次都沿 y 坐标滚动。首先将高度和宽度都设置为 wrap_content。然后在您的代码中将缩放密度设置为远,如下所示:
WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview);
webview.getSettings().setDefaultZoom(ZoomDensity.FAR);
这可能是大多数时候更好的解决方案。考虑一下如果您完整显示以下网页,字体会有多小:
webview.setInitialScale(number);
“数字”越高,页面的放大程度就越大。从较小的数字(如 10)开始并根据口味进行调整
使用此代码根据 screen 调整 webview 的大小。
设置滚动容器(假);
如前所述,缩小太多不是用户想要的,因为它会降低内容的易读性。
我建议尝试设置缩放控件,但是,我不知道它是否适用于 2.1。
webview.getSettings().setBuiltInZoomControls(true);
希望这可以解决问题,因为您现在正在让用户控制更改缩放级别。
我让它在一个对话框中使用 WRAP_CONTENT 来处理 WebView 的两个维度,不幸的是,当网页变得太大时,webview 会将我所有的其他小部件推离屏幕。
Android的布局系统非常不直观!