簡體   English   中英

如何在AndroidSVG中使用方法setDocumentViewBox()

[英]How to use method setDocumentViewBox() in AndroidSVG

我使用androidsvg-1.2.1.jar渲染svg圖像。 圖像的原始大小是寬度260像素,高度100像素。 我嘗試將圖像的寬度與顯示的寬度成比例設置,如下所示:

                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);

文檔說方法getDocumentHeightsetDocumentWidthsetDocumentViewBox方法接受以像素為單位的輸入值。 但是在這種情況下,視圖框具有估計的大小,但是圖片本身位於視圖框的左上角,並且其大小比視圖框的大小小得多(不到四倍)。

在此處輸入圖片說明

當我將代碼的最后一行更改為

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

圖片的大小已幾乎等於視圖框的大小,但仍然較小。 為什么會這樣呢? 哪些值應該應用於setDocumentViewBox方法的輸入?

viewBox用於描述SVG內容的限制。 換句話說,文件中圖形元素周圍的邊界框。 這樣,渲染器便知道需要多少縮放SVG才能填充SVG視口的區域。 視口是您使用寬度和高度指定的矩形( setDocumentWidth()setDocumentHeight() )。

為了獲得完美的配合,您需要將viewBox設置為內容的確切尺寸。 您尚未提供或鏈接SVG,因此我無法確切告訴您您的情況。

但是,舉例來說,假設您的SVG是一個矩形,其寬度為0,0,寬為100,高為20。 您將需要執行setDocumentViewBox(0,0,100,20) 如果您的SVG是半徑為50的80,60的圓,則可以執行setDocumentViewBox(30,10,100,100)

在您的情況下,看起來好像背面的淺灰色矩形定義了內容的限制,因此您可能會在視圖框中使用該尺寸。

您說SVG的原始大小為260x100。 如果與該灰色矩形的大小相對應,則可以使用setDocumentViewBox(0,0,260,100)設置viewBox。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM