1

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

我尝试了什么:我尝试实现自定义 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", "");
4

1 回答 1

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

于 2012-07-17T13:07:25.990 回答