使用9-patch png图像的Tips

最近开始踩 Android 屏幕适配的大坑,发现 9-patch png 用起来还是挺方便的。当然其中也遇到的一些问题,这里小做记录:

不同状态图像间有偏移

在 9-patch 编辑中可以看到拉伸预览。预览看上去正常,实机操作中有时会发现按下去的按钮的图像和默认状态的图像有细小的偏移。

解决方案:对不同状态的同一图像指定完全一致的 stretchable patches(左上)

Content Padding 不一致

9-patch 的 content area (右下)指定了内容区域的范围,如果需要将 9-patch 图像用于背景,并在上面显示文字等内容的话,必须正确指定 Content Area。

然而,在同一个 drawable 对应多个 9-patch 图像时,若仅设置了默认状态的Content Area,则可能出现在预览中内容显示一切正常,但实际运行时 Padding 不一致的问题。

解决方案:对不同状态的同一图像指定完全一致的 content area(右下)

预览 (Design preview) 失败或不显示

这应该算 Android Studio 的老问题了。如果怎么 Build 项目预览都不显示的话, 就 File -> Invalidate Cache and Restart吧,屡试不爽。

解决方案: Rebuild | 重启 Android Studio | Invalidate Cache and Restart Android Studio

9-patch 工具转换出的图片无法使用

自带的 9-patch 转换器和一些其他的工具有的时候无法正常处理特定格式的png (尤其是8-bit color), 处理后的 png 的颜色完全错误。

解决方案: 换个转换工具, 推荐使用这个: https://romannurik.github.io/AndroidAssetStudio/nine-patches.html

comments powered by Disqus