Android------使用9Patch图片作为按钮背景


               从图片中来看,当按钮内容不够或太大时,Android会自动缩放整张图片,以保证背景图片能覆盖整个按钮。但这种缩放整张图片的效果可能并不是很好。有时候我们需要的情况是只想缩放图片中某个部分,这样才能保证按钮的视觉效果。

        为了实现只缩放图片中某个部分的效果,我们需要借助9Patch图片来实现。9Patch图片是一种特殊的PNG图片,这种图片以.9.png结尾,它在原始的图片四周各添加宽度为1像素的线条,这4条线决定了图片的缩放规则、内容显示规则。

        通过9Patch编辑时,左侧和上侧的线共同决定了图片的缩放区域,右侧和下侧的线共同决定了显示的区域,我们通过实例来说明。(9Patch为Android SDK自带的工具,该工具位于Android SDK安装路径下的tools目录下的draw9patch.bat文件)


        启动draw9patch.bat之后,通过该工具主菜单上的“File-Open 9-Pacth”菜单项打开一张PNG图片,这里我们以ic-launcher图片为例


         首先,上一张未编辑状态的图片,我们可以发现图片周围的灰色区域,那就是我们用来产生上面所说的1像素线条的区域。



        我们先来定义图片需要缩放的区域,一般来说图片的内容我们是不想缩放的,想缩放的是图片的透明或者背景部分,上面说过左侧和上侧的线条共同决定了图片的缩放区域,我们通过单击左侧和上侧的灰色区域不放,然后左右或上下移动鼠标,来产生线条,如下图所示


 左侧和上侧黑色线条对应的部分就是我们想要缩放的区域


同理,我们通过相同的方发来定义图片需要显示但不缩放的区域,如下图所示


右侧和下侧黑色线条的对应部分就是我们需要显示但不缩放的区域


最后我们将这张图片做为按钮背景,测试一下效果,效果如下

      

这是使用9Patch编辑过后的按钮背景图片        这是未使用9Patch编辑过的按钮背景图片




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值