问题

用AS创建9 Patch图时,发现有些图片转换后失去alpha信息,无法编辑描边!

res -> drawale-xxhdpi -> target.png -> 右键 Create 9-Patch File

分析

对比发现,

  1. 转换后异常的.9图片为8-bit color 或者 24-bit color, 正常的.9图片均为32-bit color。
  2. 如果原图为8-bit color 或者24-bit color , 转换后异常。但是原图为32-bit color 转换后也有可能异常。

Google并未有很多反馈,仅有一篇类似问题https://stackoverflow.com/questions/25171838/9-patch-editor-android-studio-suddenly-black

PNG-8、24、32区别介绍

https://www.jianshu.com/p/31207790bad2

尝试解决

  1. Sketch重新切图后,转换.9正常(未发现图片有什么不同)
  2. Sketch重新切图后,再压缩后,转换.9正常
  3. 使用在线工具Simple nine-patch generator转换8-bit color ,24-bit color ,32-bit color原图都能得到正常的.9图。

总结

Android Studio 9-Patch 直接转换可能丢失位图信息,无法获取32-bit color .9文件。
推荐直接用Simple nine-patch generator转换异常图片。