九个补丁与矢量在安卓



九块与矢量图形

我读了这个,仍然不明白,

我正在尝试使用九个补丁或矢量,因为在我的项目中按分辨率准备所有位图文件太烦人了。

我知道当以不同的屏幕分辨率查看时,两者都用于显示相同的大小和图像。

但我不知道细节上有什么不同。除了九个补丁针对按钮进行了更多优化之外。

我可以将 Android 项目中的所有图像和图标制作为矢量或九个补丁吗?

让我简要介绍一下。

NinePatchDrawable:

NinePatchDrawable 图形是一个可拉伸的位图图像,Android 会自动调整其大小以适应您将其作为背景的视图的内容。NinePatch的一个示例是标准Android按钮使用的背景 - 按钮必须拉伸以适应各种长度的字符串。NinePatch 可绘制对象是标准的 PNG 图像,其中包含一个额外的 1 像素宽边框。它必须以扩展名 .9.png 保存,并保存到项目的 res/drawable/目录中。边框用于定义图像的可拉伸区域和静态区域。通过在边框的左侧和顶部绘制一条(或多条(1 像素宽的黑线(其他边框像素应完全透明或白色(来指示可拉伸部分。您可以根据需要拥有任意数量的可拉伸部分:它们的相对大小保持不变,因此最大的部分始终保持最大。您还可以通过在右侧和底线上绘制一条线来定义图像的可选可绘制部分(实际上是填充线(。如果 View 对象将 NinePatch 设置为其背景,然后指定视图的文本,它将自行拉伸,以便所有文本仅适合由右线和底线(如果包含(指定的区域。如果未包含填充线,Android 将使用左侧和顶部线来定义此可绘制区域。为了阐明不同线条之间的差异,左行和顶行定义了允许复制图像的哪些像素以拉伸图像。底线和右线定义图像中允许视图内容所在的相对区域。

VectorDrawable:

与位图不同,矢量图像不基于像素图案,而是使用数学公式绘制线条和曲线,这些线条和曲线可以组合在一起,从几何对象(如圆形和多边形(创建图像。矢量图像通过使用 Adobe Illustrator 等程序操作构成图像的直线和曲线来编辑。

矢量图像与位图图像相比具有一些重要优势。矢量图像往往比位图图像小。这是因为位图图像必须存储构成图像的每个像素的颜色信息。矢量图像只需要存储构成图像的数学公式,占用的空间更少。

矢量图像也比位图图像更具可伸缩性。放大位图图像后,您开始看到构成图像的各个像素。这在图像的边缘最为明显。有一些方法可以使这些锯齿状边缘不那么明显,但这通常也会导致图像模糊。放大矢量图像时,使用数学公式重新绘制图像,因此生成的图像与原始图像一样平滑。

Web 上使用的三种最流行的图像格式(PNG、JPEG 和 GIF(是位图格式。可缩放矢量图形 (SVG( 格式排在第四位,这是由于早期浏览器中对矢量图形的支持不佳。然而,今天,所有主流浏览器都支持 SVG(可缩放矢量图形(格式。

位图格式最适合需要具有各种颜色渐变的图像,例如大多数照片。另一方面,矢量格式更适合由几个纯色区域组成的图像。非常适合矢量格式的图像示例包括徽标和类型。

您也可以参考此链接: http://www.gkmit.co/articles/vector-drawable

希望这对您有所帮助。如果您有任何其他疑问,请告诉我。

九个补丁:九个补丁是拉伸您在额外一个像素中定义的区域的方法,因此它可以适应所有分辨率。

矢量:矢量是如何以您设置的特定宽度和高度绘制图像的方式。

最新更新