一个NinePatchDrawable图片其实就是一个可延展的位图,它在android系统下,如果它被设置为背景图的话,会自动适应宿主View的尺寸。比如:对于android的button空间,由于button text长度的不同就很适合用NinePatchDrawable的图片作为背景,免去了为不同尺寸的图片定制背景的麻烦。
一个NinePatchDrawable图片是一张标准的png图片,只是它带有比正常图片多一个像素宽度的额外信息。它必须被保存成 .9.png,并且放在res/drawable/目录下。
对于button背景图片变形的情况,可以通过使用9pitch图片来解决。从而使一个图片能适应不同尺寸的Button的情况。
NinePatch图片以*.9.png结尾,和普通图片的区别是四周多了一个边框,可以看下关于图片的结构图:
任何图片都能被编辑成9pitch图片,可以使用android系统ADK自带的tool工具,在SDK的tools目录下的draw9patch.bat工具。
一个9pitch图片使在原图片的四边个增加一个像素的边,来定义图片的扩展信息,有两个参数是必须的:左侧参数和上侧参数。如图片所示。左侧和上侧两个参数共同定义了图片可扩展的区域。