Android语言基础教程(145)Android Drawable资源范例之使用9-Patch图片实现不失真按钮背景:Android按钮变形记:9-Patch图片让你的背景自适应又不失真!

一、引言:一个让所有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中已经自带了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值