在横向,最大模式下强制渲染,锁定纵横比,使一切适合屏幕

时间:2013-07-13 17:27:22

标签: android webview locking zoom aspect-ratio

我想强制我的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

2 个答案:

答案 0 :(得分:2)

要强制它横向显示,请在清单中将android:screenOrientation =“landscape”添加到活动中。这将阻止活动永远成为肖像。

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

答案 1 :(得分:1)

webView.getSettings().setUseWideViewPort(false);

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

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

myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

我们也可以像之前的回答一样对清单进行更改。