[英]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);
文檔說方法getDocumentHeight
, setDocumentWidth
和setDocumentViewBox
方法接受以像素為單位的輸入值。 但是在這種情況下,視圖框具有估計的大小,但是圖片本身位於視圖框的左上角,並且其大小比視圖框的大小小得多(不到四倍)。
當我將代碼的最后一行更改為
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.