9Patch 的平铺替代品?

Dav*_*man 5 android nine-patch

我是一名设计师/开发人员,在花了一年的 iOS 开发时间后开始学习 Android。

iOS 中相当于 NinePatch/9patch 的函数称为 ressizedImageWithCapInsets。它允许开发人员采用常规 PNG 并以编程方式指定 9patch 信息,即 Android .9.png 文件周围 1 像素边框中的信息。

但有一个关键的区别。在 Android 上,9patch 中间的位是缩放的,而在 iOS 上它们是平铺的。对于某些类型的图像来说这并不重要;但对于任何具有纹理或图案的东西,缩放都会破坏图像。

以编程方式指定区域还允许设计人员使用http://macrabbit.com/slicy等工具将复杂的主 Photoshop 文件分割为单独的图像资源;据我所知,目前还没有适用于 Android 9 补丁的等效工具。(SDK 附带的 draw9patch 工具不起作用,因为每次从主 Photoshop 文件导出时都必须重复使用它。)

我猜测人们可以创建一个模仿 iOS 行为的 Drawable 子类:你向它传递一个普通的旧 PNG 和一组 9patch 尺寸,它会适当地绘制自己,平铺中间部分。你甚至可以提供一个开关来在平铺和拉伸之间切换(我希望 iOS 这样做)。

作为一个新手,我需要一些时间来弄清楚如何做到这一点。类似的东西是否已经作为开源组件或示例存在?

谢谢!