2016-04-03 62 views
0

我使用androidsvg-1.2.1.jar來渲染svg圖像。圖像的原始尺寸寬度爲260像素,高度爲100像素。我試圖成比例地設置圖像的寬度與顯示器的寬度如下:如何在AndroidSVG中使用方法setDocumentViewBox()

   Display display = getWindowManager().getDefaultDisplay(); 
       Point size = new Point(); 
       display.getSize(size); 
       int width = size.x; 
       int height = size.y; 
       height = (int) (width/2.6); 
       svg.setDocumentHeight(height); 
       svg.setDocumentWidth(width); 
       svg.setDocumentViewBox(0, 0, width, height); 

該文檔說,方法getDocumentHeightsetDocumentWidth和方法setDocumentViewBox接受以像素爲單位的輸入值。但在這種情況下,viewbox有估計的大小,但圖片本身位於視圖框的左上角,其大小遠小於視圖框的大小(小於大約四倍)。

enter image description here

當我改變了代碼的最後一行的

svg.setDocumentViewBox(0, 0, width/4, height/4); 

圖片的大小已成爲直逼大小視框,但仍有點小。這是爲什麼發生?應該對setDocumentViewBox方法的輸入應用什麼值?

回答

0

viewBox旨在描述SVG內容的限制。換句話說,圍繞文件中圖形元素的邊界框。這就是渲染器知道需要多大程度來縮放SVG以填充SVG視口區域的方式。視口是指定寬度和高度的矩形(setDocumentWidth()setDocumentHeight())。

爲了獲得完美的配合,您需要將viewBox設置爲您的內容的確切尺寸。你沒有提供或鏈接你的SVG,所以我不能確切地告訴你你的情況到底是什麼。

但是,例如,假設你的SVG是一個矩形,它的寬度是0,0,寬度是100,高度是20。你需要做setDocumentViewBox(0,0,100,20)。如果你的SVG是80,60的半徑爲50的圓,你可以做setDocumentViewBox(30,10,100,100)

就你而言,它看起來好像後面的淺灰色矩形定義了內容的限制,所以你可能會在你的視圖框中使用它的尺寸。

你說你的SVG的原始大小是260x100。如果這對應於那個灰色矩形的大小,那麼您將設置視圖框爲setDocumentViewBox(0,0,260,100)

相關問題