【发布时间】:2010-12-31 18:20:25
【问题描述】:
是否可以在 WebView 中加载 URL 并调整其大小以适应屏幕?我的意思是我想让网页变小,这样用户就不需要滚动了。这可能吗?
【问题讨论】:
是否可以在 WebView 中加载 URL 并调整其大小以适应屏幕?我的意思是我想让网页变小,这样用户就不需要滚动了。这可能吗?
【问题讨论】:
您也可以尝试设置相同的布局算法。它对我有用
webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
【讨论】:
将初始比例设置为 1。然后它会放大以填满屏幕。尚未测试它如何在非常高大的网站(例如包含大量 cmets 的博客文章)上运行,但它可以在 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)开始,然后根据口味调整
【讨论】:
使用此代码根据屏幕调整 webview 的大小。
setScrollContainer(false);
【讨论】:
我让它在一个对话框中使用 WRAP_CONTENT 来处理 WebView 的两个维度,不幸的是,当网页变得太大时,webview 会将我所有的其他小部件推离屏幕。
Android 的布局系统非常不直观!
【讨论】:
如前所述,用户不希望缩小太多,因为它会降低内容的易读性。
我建议尝试设置缩放控件,但是,我不知道它是否可以在 2.1 中使用。
webview.getSettings().setBuiltInZoomControls(true);
希望这可以解决问题,因为您现在可以让用户控制更改缩放级别。
【讨论】: