简介


ninepatch是android提供的一种图片格式,以.9.png结尾,它可以根据实际情况横向或纵向的拉伸,它是png的一种特殊格式。

ninepatch


为什么会有ninepatch呢?

比如,有个聊天图片message_left.png,当宽度设置为match_parent时,就产生了图片由于拉伸而很难看的问题。

android ninepatch_可编辑

有鉴于此,android在它的sdk中提供了工具draw9patch来制作ninepatch解决此问题。使用android_sdk_home/tools/draw9patch.bat打开图片

功能区介绍

左侧是编辑区,右侧依次是纵向拉伸、横向拉伸、纵向和横向拉伸。

android ninepatch_android_02

使用

ninpatch**上线和左线指定拉伸区域,使用右线和下限指定内容区域**,各条黑线的宽度都是1px,ninepatch把图片分为9块,所以叫9patch

android ninepatch_css_03

上线和左线黑线交汇的地方灰色区域,是可拉伸区域

android ninepatch_android_04

右线和下线是内容区域

android ninepatch_可编辑_05

点击,保存后,再次查看效果。

android ninepatch_css_06

draw9patch常用选项


show lock:左侧显示不可编辑区域

android ninepatch_android_07


show patch: 左侧显示可拉伸区域

android ninepatch_css_08


show content:右侧显示内容区域

android ninepatch_android_09


patch scale:右侧图拉伸

shift+鼠标:擦除黑线

总结


ninepatch有点类似css中的repeat,不过css设置背景一般是repeat-x,repeat-y。而ninepatch是指定拉伸区域。