在我们使用图片作为按钮的背景图时,android有时会自动拉伸缩放整张图片以使得背景图片能覆盖整个按钮区域,这就可能使得图片中某些我们需要保留原始尺寸部位扭曲变形,用9Patch工具对图片做相应处理就可以解决这一问题,闲话少叙,我们直接来看9Patch工具是如何使用的。
在Android SDK安装路径的tools目录下,双击draw9patch.bat,启动该工具,点击"File"→"Open 9-patch"打开一张png图片,这里我们选择了一张萌萌哒的拿着气球的大白。
在界面右侧会显示图片在不同情况下被拉伸或缩放的预览图,可以看得到本来身体比例协调的大白变形后或者变得高瘦或者变得矮胖,完全失去了原有的萌态!9Patch中通过定义图片缩放区域就可以很好地解决这一问题。在图片的左边界画直线,以此直线向右映射所得的矩形区域可以在垂直方向拉伸或缩放;在图片上边界画直线,以此直线向下映射所得的矩形区域可以在水平方向拉伸或缩放,而两个矩形区域交集的区域在两个方向上都可以变形。
如上图所示,我们分别在左边界和上边界画了两条线(我偷偷描粗了一点便于大家看),由这4条线组成的4个区域就是图片可缩放区域(偷偷上了个色便于大家看
),我们可爱的大白不处于可缩放区域,因此就不会变形了。
清楚了9Patch中缩放区域的相关内容后,我们接下来看内容显示区域的作用及用法。
缩放区域由左侧和上侧直线控制,而内容显示区域则由右侧和下侧所画直线共同决定,所谓内容显示区域意思就是当我们将这张.9.png的图片作为按钮背景然后通过android:text给按钮添加文字时,文字会显示在内容显示区域。这里我们希望在大白的气球上写文字,因此画线方法如下
我们在右边界和下边界各画了一条直线(我又给加粗了【手动笑哭】),两条直线映射所得矩形区域的交集部分(绿色矩形区域)即为内容显示区域,接下来我们保存所得.9.png格式图片,并将其复制到工程的drawable文件夹下,就可以将此图片用作按钮背景了,效果图如下
可以发现,我们给按钮输入的文字“Love”会处于设置的气球区域!喜欢这篇用心的博客就顶一个吧!