2011-03-03 65 views
1

我的問題與this one類似,但不同的是我要發佈一個新的。WebView autoscales本地圖片

我正在寫一個圖像查看器,用於從遠程服務器下載PNG,將其保存到存儲中,然後在WebView中打開它,以便免費獲得多點觸控縮放。這些圖像通常是文檔,所以用戶會希望能夠放大很遠。我發送了足夠分辨率的圖像以啓用此功能,但WebView似乎是通過將我的圖像縮放到屏幕大小來「幫助」我的。這意味着我的圖像分辨率太低,無法正確放大。

我已經搜索了這個,我發現了一些其他人遇到了similarproblem,但唯一可能的解決方案是將圖像剪切成瓦片,然後使用HTML重新組裝,然後將其加載到視圖中。這看起來像是一個混亂,我要求StackOverflow hivemind是否有人有辦法關閉縮放,或者獲得我需要的替代方法。

來初始化WebView代碼:

viewer = (WebView)findViewById(R.id.activity_imageviewer_webview); 
viewer.setBackgroundColor(0); 
WebSettings settings = viewer.getSettings(); 
settings.setJavaScriptEnabled(false); 
settings.setBuiltInZoomControls(true); 
settings.setUseWideViewPort(true); 
settings.setLoadWithOverviewMode(true); 

加載圖像到WebView代碼:

viewer.loadUrl(Uri.fromFile(imageFile).toString()); 

回答

0

我們最終通過使用平鋪方法解決了這個難題。我們將服務器上的圖片分成垂直片段,然後將其發送到客戶端,然後將它們放入WebView,然後使用客戶端上的HTML進行重新組合。

它實際上似乎工作得很好。圖形絕對是更高的質量,人們可以輕鬆閱讀其中的文字。我們看到的唯一問題是,平移和縮放的性能受到影響,因爲我未知的原因(只有在Nexus S上)非常糟糕。

直到其他事情發生變化,我認爲這可能是解決問題的唯一解決方案,無需編寫自定義視圖控件。

0

更改視口特性也許會有幫助,一起來看看在

<meta name="viewport" ...>

html標題中的meta標記

+0

感謝您的提示,但在嘗試了'和其他一些視口屬性後,沒有任何改變。我的圖像仍然縮放,看起來很糟糕。 – 2011-04-18 17:23:50

+1

傑克這是一個遠投。如果我遇到了什麼,我會讓你知道的。 – rquinn 2011-04-19 12:22:30

+0

感謝您的幫助! – 2011-04-25 18:26:20