12

我想在 WebView 中显示网页。到此为止还好。

但我有网页(如下所示),我想要它的某些部分。我的意思是在所有设备的适合屏幕模式下应该只看到左上角。

自过去两三天以来,我一直在解决此问题。

我想要什么: 我想显示网页的左上角以显示在 Webview 中,无论策略可能是缩放或任何其他选项,但它应该适合所有设备的屏幕。

还有一件事我不能改变网页的源代码,因为它是固定的。 我必须通过代码本身进行管理。

在此处输入图像描述

我尝试过的: 我参考了 Stackoverflow 链接,但没有运气。

这是我的代码。:

            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)中运行良好,但在大型设备或 Galaxy Tab2 等标签中,我得到的左上角图像非常小,屏幕的所有其他区域只是网页的背景。

下面是运行上述代码后 Galaxy Tab2 的屏幕截图。 在此处输入图像描述 请给你任何我缺乏的建议。提前致谢。

4

5 回答 5

1

try with this code hop this work for u.

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();
        }
于 2012-12-01T07:05:54.970 回答
1
WebView x;

x.setInitialScale(1);

这是可能的最大变焦。但对于某些网站来说,它只是看起来很丑陋。

这是我找到的第二个版本

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

这是一个很好的多面手,似乎只是缩小了很多,但仍然不是我想要的。

现在这是我的最终解决方案。

x.getSettings().setLoadWithOverviewMode(true);
x.getSettings().setUseWideViewPort(true);

基本上这些所做的事情在另一个这样的问题中得到了回答。

setLoadWithOverviewMode(true) 

加载完全缩小的 WebView

setUseWideViewPort(true)
于 2014-11-06T04:45:03.590 回答
0

在 HTML 页面上,您可以target-densitydpi=240; 根据设备类型在 Java 代码中设置此参数,页面将自动适应目标密度。

于 2013-01-11T15:15:12.850 回答
0

我相信修复应该只在网页级别完成,理想情况WebView下不能在这里做任何技巧。WebView只是一个浏览器(具体来说是 chromium 浏览器),它应该按照网页的指示进行渲染。

为了真正解决您的问题,您应该尝试修改网页的 CSS。

于 2014-03-22T03:58:18.273 回答
0

您可以尝试使用HtmlCleaner(如何在此处使用它的示例)从网页中获取 html,然后提取您要显示的部分并将其加载到 WebView 中使用: WebView.loadData();

我在我的一个应用程序中使用了这种方法来重新格式化页面,以便在移动设备上更容易使用。

于 2012-11-25T23:08:39.643 回答