如果内容太大,Android webview如何缩放以适应,但当内容小于屏幕时显示实际大小?

时间:2012-07-17 12:49:02

标签: android webview

我正在编写一个应用程序,其中一个功能是显示来自我们的Web服务器的图像。 来自Web服务器的图像大小不一。它将显示在屏幕中央。 当图像大于屏幕尺寸时,它将调整大小以适应屏幕,用户可以捏合缩放。 当图像小于屏幕尺寸时,将不会调整其大小。

我尝试过:我尝试实现自定义imageView以允许缩放,但似乎需要进行许多计算。 然后我发现许多程序员通过webview来做这件事。

现在它可以缩放,并放置在屏幕的中心。问题是当图像小于屏幕尺寸时,它也显示适合的屏幕。

问题,是否有任何方法可以获得图像大小的内部宽度,以便我可以用它来确定图像的比例?或者有更好的方法来实现这一目标吗?

以下是我使用的代码,非常感谢!

        final String html = "<body bgcolor=black>"
                + "<table width=100% height=100%><tr><td><center><img src=\""
                + userProfile.getImageUrl()
                + "\"  width=100% /></center></td></tr></table>" + "</body>";

        WebSettings settings = mWebView.getSettings();
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        settings.setUseWideViewPort(true);
        settings.setLightTouchEnabled(true);
        settings.setLoadWithOverviewMode(true); 

        mWebView.loadDataWithBaseURL("fake://not/needed", html, "text/html",
                "utf-8", "");

1 个答案:

答案 0 :(得分:0)

利用

    settings.setLayoutAlgorithm(PARAMETER OF YOUR CHOICE);

不确定这是否有助于您仍然可以尝试

编辑:首先你可以使用

    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    int screenWidth = display.getWidth();
    int screenHeight = display.getHeight();

要查找屏幕宽度和高度,您可以使用

缩放图像
    resizedImage = Bitmap.createScaledBitmap( image, imageWidth, imageHeight, true);

使用这种方法,您可以在屏幕上完整显示图像而无需任何WebView