Android Draw 9补丁工具:图中黑线的含义是什么

时间:2010-11-20 05:29:52

标签: android drawing2d

我在google& amp; android这个问题。还进行了几次试验和错误,但无法得到这个问题。 我正在学习Android的“Draw Nine Patch”图像。我知道的一个基本原则是,无论你处理什么图像都必须是.png格式(如果它已经在.9.png中,那么它将被工具忽略)。但是,

  1. 我无法理解“可拉伸的补丁”在字面上意味着什么?
  2. 在.png图像外部绘制黑点时会发生什么? (预览窗格显示正在发生的变化,但我不清楚它是如何制作的)
  3. 当我在图像的左/上侧绘制黑点时,它会在预览中显示一些变化;但是,当你在图像的右/底侧做同样的事情时,为什么没有效果呢?
  4. 当我们尝试处理图像本身时,为什么这个工具主要用于背景?
  5. 我正在尝试修改一个简单的button.png(在android sdk中给出)。每当我使用这个工具&绘制黑色线条,它减少了图像的大小而不是“拉伸”它!为什么?
  6. 下面给出的选项有什么意义,比如“show lock”,“show content”,“Patch scale”等等?
  7. 我为提出这么多问题而道歉,但在Android在线文档中他们没有为新手解释得很好。如果有人可以回答这些问题,它将成为所有搜索此论坛的初学者的准备参考。

1 个答案:

答案 0 :(得分:26)

通过可伸缩的补丁,您基本上可以告诉Android您要重复的图像中哪些行和列的像素。当您拉伸标准图像时,有两种可能性:一种是按比例缩放,但由于插值仍然会失去清晰度;二,它不成比例地缩放,不仅失去了它的锐度,而且失去了它的形状。下面是一个不成比例的缩放的例子:
stretched

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


example

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

stretched images result