2013-01-31 109 views
0
public class TWVSVGMainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    WebView webView = new WebView(this); 
    setContentView(webView); 
    webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setRenderPriority(RenderPriority.HIGH); 
    webView.getSettings().setUseWideViewPort(true); 
    webView.getSettings().setBuiltInZoomControls(true);  
    webView.getSettings().setDisplayZoomControls(false); 
    webView.loadUrl("file:///android_asset/003.svg"); 
}} 

縮放SVG圖像後SVG是像素化的像素化使用svg縮放WebView。如果放大

我只是加載SVG到的WebView,我想從* .svg文件的文字是沒有象素化。

我錯過了什麼。

+1

固定在HTML端。有一些錯誤,如果HTML頁面只有SVG - 如果縮放它將被像素化。但是,如果HTML頁面至少包含一個符號 - 縮放將正常工作。 – Cheb

+0

請指定您的解決方案作爲正確答案,而不是評論,如果它適合您,請接受(您自己的)答案。提供更多細節將會很有用。 「HTML頁面至少包含一個符號」是什麼意思?謝謝! – aleb

+0

有同樣的問題,他意味着你需要添加一個字符,像一個句號或任何字母到HTML中。你不能僅僅擁有SVG圖像,否則圖像將會像素化。 –

回答

0

這是什麼工作對我來說,能夠放大一個SVG在網頁視圖,並初步顯示它完全縮小:

setInitialScale(1); 
WebSettings settings = getSettings(); 
settings.setSupportZoom(true); 
settings.setDefaultZoom(WebSettings.ZoomDensity.FAR); 
settings.setDisplayZoomControls(true); 
settings.setBuiltInZoomControls(true); 
settings.setUseWideViewPort(true); 
+0

爲我工作,謝謝! –

0

這是我得到了我的SVG文件在果凍豆的WebView顯示:

我使用嵌入標籤包括SVG到HTML文檔:

<embed width="100%" height="100%" src="{{ svg_url }}" type="image/svg+xml"/>

這是includ非常重要e寬度和高度屬性,因爲否則SVG在Jelly Bean WebView中被切斷。

感謝Chab(見上面),我還必須在HTML頁面中包含一些隨機文本。像這樣的伎倆:

<span style="color:White;">hidden</span>

我也不得不設置在組合<meta name="viewport" content="initial-scale = 1.0, user-scalable = yes">標籤與webView.getSettings().setUseWideViewPort(true);爲SVG在不切斷部分圖像縮放。

希望可以幫到