为什么我们需要9补丁?

我的问题就像标题所说:为什么我们需要9个补丁图像? 它们真的如此重要吗? 实际上,他们真正做了什么? 我没有清楚地得到9补丁图像的概念。

我知道9补丁图像是可扩展的。 所以,假设我有一些完全适合我的ldpi设备的图像按钮。 使用Draw 9-patch工具(android SDK的一部分),我可以标记可缩放区域,这个图像非常适合hdpi甚至xhdpi设备。 边缘将是美好而顺利的。

但这是非常好的实践还是仅仅是另类? 我应该为ldpi,mdpi,hdpi和xhdpi设备创建每个图像,还是只需在一个图像上使用Android SDK“Draw 9-patch”,让Android处理各种设备?

我不是关于边缘,而是图片的实际内容。 内容是否也可以扩展?

9补丁背后的逻辑是你没有缩放角落。

在android 9-patch中,当您希望图像的某些部分进行缩放以及其他部分保持其原始尺寸时使用。 想到的第一个应用就是你所说的角落。 所以你在那种情况下使用它们。

另一方面,如果您希望资源以高质量出现(没有模糊),您应该使用替代资源(ldpi,hdpi ..)

看看这里: 屏幕支持

九个补丁图像是可扩展的,但仅限于某些区域。 最简单的例子是一个分为9个部分的盒子:角落不会缩放; 边界将根据中间的内容在一个方向上延伸。

这个概念存在于其他语言中。 iOS,CSS3,W3C盒子模型就是这样的例子。 然而,9补丁图像使用起来既简单又灵活,因为:

  1. 可以扩展几个区域而不是其他语言的区域;
  2. 可缩放区域在图像中定义,而不是在代码中定义。