如何在 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);
文档说方法 getDocumentHeight
、setDocumentWidth
和方法 setDocumentViewBox
接受以像素为单位的输入值。但是在这种情况下 viewbox 有估计的大小,但是图片本身位于 viewbox 的左上角并且它的大小比 viewbox 的大小小得多(不到四倍)。
当我将代码的最后一行更改为
svg.setDocumentViewBox(0, 0, width/4, height/4);
图片的大小已经和viewbox的大小差不多了,但是还是小了一点。为什么会这样? 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。如果这对应于那个灰色矩形的大小,那么您可以将 viewBox 设置为 setDocumentViewBox(0,0,260,100)
.
我使用 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
接受以像素为单位的输入值。但是在这种情况下 viewbox 有估计的大小,但是图片本身位于 viewbox 的左上角并且它的大小比 viewbox 的大小小得多(不到四倍)。
当我将代码的最后一行更改为
svg.setDocumentViewBox(0, 0, width/4, height/4);
图片的大小已经和viewbox的大小差不多了,但是还是小了一点。为什么会这样? 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。如果这对应于那个灰色矩形的大小,那么您可以将 viewBox 设置为 setDocumentViewBox(0,0,260,100)
.