2

我想强制我的 webview 应用程序处于横向(最大模式),锁定纵横比,使其始终填满屏幕,禁用缩放(双击时)并禁用滚动。

这是我到目前为止所尝试的。

WebView b=(WebView)findViewById(R.id.webview);
        b.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        b.setScrollbarFadingEnabled(false);
        b.getSettings().setJavaScriptEnabled(true);
        b.getSettings().setLoadWithOverviewMode(true);
        b.getSettings().setUseWideViewPort(true);
        b.getSettings().setBuiltInZoomControls(false);
        b.setPadding(0,0,0,0);b.setInitialScale(getScale());

  private int getScale(){
        Display display=((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
        int width=display.getWidth();Double val=new Double(width)/new Double(800);
        val=val*100d;return val.intValue();
    }

这是我的 Galaxy Note 上的渲染图

初始视图:http: //i.snag.gy/ol0Zh.jpg

双击屏幕时查看(我想要的初始视图):http: //i.snag.gy/j6i3f.jpg

4

2 回答 2

2

要将其强制为横向,请在您的清单中将 android:screenOrientation="landscape" 添加到活动中。这将阻止活动永远进行肖像。

我不建议禁用滚动 - 如果您的应用不适合较小的屏幕设备怎么办?他们将如何看待您的内容?您可以缩小显示比例,但这会伤害有视力问题的人(如果它变得足够小,甚至会伤害正常人)。我才 30 多岁,我放大大多数网站以更轻松地阅读文本。

于 2013-07-13T17:32:50.483 回答
1

webView.getSettings().setUseWideViewPort(false);

然后我们可以手动设置比例。有关此内容,请参阅stackoverflow.com/a/3916700/519955

对于景观,我们可以使用以下方式以编程方式设置它:

myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

如前所述,我们也可以在清单中进行更改。

于 2013-07-13T17:46:08.707 回答