2012-07-17 90 views
1

我正在写一个应用程序,其中一个功能是显示来自我们的Web服务器的图像。 来自Web服务器的图像大小不一。它将显示在屏幕的中心。 当图像大于屏幕尺寸时,它将调整大小以适合屏幕,用户可以捏到变焦。 当图像小于屏幕尺寸时,将不会调整尺寸。如果内容太大,Android webview如何缩放以适合内容,但在内容比屏幕小时显示实际大小?

我试过了:我试图实现一个自定义的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", ""); 
+0

这让我疯狂,我已经取代宽度= 100%至最大宽度为100%,但另一个问题被找到,当我放大图像时,它会在我的手指离开屏幕之前缩小到缩放之前的大小,有谁知道如何阻止它? – 2012-07-18 14:03:51

回答

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

+0

我已经尝试过,但似乎没有影响,谢谢你的回答! – 2012-07-18 14:03:00

+0

检查我编辑的答案 – 2012-07-18 16:25:31

+0

但是然后图像不会有“捏缩放”功能,或者我需要自己实现它 – 2012-07-19 07:02:18