了解9-patch drawables

时间:2016-05-19 22:04:07

标签: android nine-patch

第1部分

如果9个补丁图像必须具有一个像素可伸展区域用于区域2,4,6,8(按读取顺序计算区域),9补丁图像如何捕获图像等如下所示,角落为4x4,每个可伸展区域的宽度为4像素?

9-patch

第2部分

为什么sdk / tools / draw9patch可以独立修改顶部和底部区域?同样,为什么左右区域是独立的?我希望编辑器能够提供操作上图中出现的四个插入符号的方法。

1 个答案:

答案 0 :(得分:1)

4个边框必须 1px高(或宽)且透明 他们可能有也可能没有9个补丁标记 1 px高(或宽),高和黑

顶部边框用于标记(零),一个或多个可伸缩水平区域
左边框用于标记(零),一个或多个可伸展垂直区域/ s

(可选)右边框用于设置垂直内容区域(实际上,它标记了一些内部填充)。
(可选)底部边框用于设置水平内容区域(实际上,它标记了一些内部填充)。

本文中有更多内容: http://blog.booleanbites.com/2012/11/android-how-to-use-9-patch-png.html

例如

以下两个图像中的任何一个都适合作为9补丁,受以下限制:

  1. 即使图像的纵横比与原始图像的纵横比相比,四角处的四分之一圆也必须保持纵横比。
  2. 同样,边框中的圆圈必须保持圆圈(即,它们可能不会缩放)。
  3. 此外:

    9补丁图像的规格不足,即:

    1. 关于四个绿色角落没有指定任何内容。它们可以有任何价值。
    2. 由于我们指定了在需要时缩放的区域,而不是那些可能无法缩放的区域,因此在粉红色单像素边框的规范中有余地。顶部或底部都可以。 然而,在此示例中,要将圆圈保持在边框的中心,粉红色像素的宽度必须相等。
    3. 在这个例子中,我们特别着眼于创建一个可变大小的框架的情况。为此,必须正确设置透明度:

      1. 内部灰色区域的透明度是完全透明的。
      2. 粉红色像素的透明度无关紧要(?)。
      3. 青色像素的透明度必须完全不透明。
      4. 9-patch frame example