2012-07-17 64 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