14

我试图在 google & android 中找到这个问题。也做了几次试验和错误,但无法得到这个问题。我正在学习 Android 的“绘制九个补丁”图像。我知道的一个基本原则是,您处理的任何图像都必须是 .png 格式(如果它已经在 .9.png 中,那么它将被工具忽略)。然而,

  1. 我不明白“可拉伸补丁”的字面意思是什么?
  2. 当您在 .png 图像之外绘制黑点时,究竟会发生什么?(预览窗格显示正在发生的变化,但我不清楚它是如何产生这些变化的)
  3. 当我在图像的左侧/顶部绘制黑点时,它会显示预览中的一些变化;但是,当您在图像的右侧/底部执行相同操作时,为什么没有任何效果?
  4. 当我们尝试对图像本身进行处理时,为什么这个工具主要用于背景?
  5. 我正在尝试修改一个简单的 button.png(在 android sdk 中给出)。每当我使用此工具并绘制黑线时,它都会减小图像的大小而不是“拉伸”它!为什么 ?
  6. 下面给出的选项有什么意义,例如“显示锁定”、“显示内容”、“补丁比例”等?

我很抱歉问了这么多问题,但在 Android 在线文档中,他们没有为新手很好地解释。如果有人能回答这些问题,它将成为所有搜索此论坛的初学者的现成参考。

4

1 回答 1

26

通过可拉伸的补丁,您基本上是在告诉 Android 图像中您想要重复的像素行和列。拉伸标准图像时,有两种可能:一是按比例缩放,但仍因插值而失去锐度;第二,它不成比例地缩放,不仅失去了锋利,而且失去了形状。下面是一个不成比例的缩放示例:
拉伸

所以黑线的目的是告诉Android图像的哪些区域可以安全地重复。上角定义了可以拉伸的列,而左角定义了可以拉伸的行。右下角只是定义了实际的内容区域(例如允许按钮放置文本的位置),您可以保留额外的空间来填充框架。在下图中,您可以看到框架外部的两个黑色像素定义了图像上的行,而顶部的黑色像素定义了一列。


例子

下面,这显示了一个 9-patched 拉伸到各种尺寸的结果。如果将其放大到更宽,则定义的可拉伸列左右两侧的图像与新大小的左右对齐,并重复定义的列以填充其间的空间。定义的行也会发生同样的事情;如果您使用倍数(我不相信您可以使用超过 2 个拉伸行/列),它只会用它们均匀地填充空间;在这种情况下,我用它来保持渐变在中间均匀分布。

拉伸图像结果

于 2010-11-20T06:39:39.927 回答