一、引言:一个让所有Android开发者泪奔的问题
嘿,Android开发者!你是不是曾经遇到过这样的情况?
你精心设计了一个漂亮的按钮背景,费了九牛二虎之力把它放到项目中,结果当按钮文本稍长一点,那个背景就拉伸得连亲妈都不认识了——边角失真、渐变错乱、阴影诡异……
别问我怎么知道的,每个Android开发的成长路上,总有几个夜晚是为这个问题熬的。
更可怕的是,当你尝试用传统的padding来解决时,你会发现不同分辨率的设备上效果完全不一样,要么文字挤在一起,要么空白大得能放下另一个按钮。
好在,Android团队早就预料到了这个痛点,并提供了一个优雅的解决方案——9-Patch图片!它还有一个可爱的名字:点9图。
二、什么是9-Patch图片?Android界的"橡皮泥图片"
2.1 初识9-Patch
简单来说,9-Patch是一种特殊的PNG格式图片,它在普通PNG图片的最外面一圈额外增加了1px的边框。这个边框不是用来装饰的,而是承载着重要的"使命"。
它为什么叫"9-Patch"?
因为它把一张图片分成了9个部分——4个角、4个边和1个中心。就像这样:
左上角 上边 右上角
左边 中心 右边
左下角 下边 右下角
四个角保持不变,四条边单向拉伸,中心部分双向拉伸。这样无论你怎么拉伸图片,边角都能保持原样,再也不会失真了!
2.2 9-Patch图片的工作原理
9-Patch图片通过四周那1px宽的黑线来传递"拉伸指令":
- 左边黑线:定义图片中垂直拉伸区域(必须要画)
- 上边黑线:定义图片中水平拉伸区域(必须要画)
- 右边黑线:定义垂直内容区域(可选)
- 下边黑线:定义水平内容区域(可选)
这些黑线在最终的应用中是不会显示的,它们只是给Android系统的"暗号"。
举个栗子:假设你有一个圆角矩形按钮背景,你肯定希望只有中间部分被拉伸,而四个圆角保持不变。通过9-Patch,你可以精确指定只有中间水平方向和垂直方向的部分被拉伸,圆角部分保持原样。
三、准备工作:找对工具,事半功倍
3.1 找到你的"武器"——Draw9Patch工具
Android SDK中已经自带了

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



