蓝牙聊天 第6节 应用的美化与完善

第6节 应用的美化与完善

现在,我们还可以为聊天应用加上多国语言的支持和关于界面,把使用到的颜色和尺寸定义到资源文件当中,这样一来,安豆的蓝牙聊天应用就算是比较完整的完成了。

这两部分在以前“计算器”章节中,已经介绍过了,大家就自己动手吧。

这一节,我们将重点介绍聊天文字的背景图片是如何制作的。

6.1 9Patch图片的原理

观察一下安卓系统中需要经常用到的图片,可以发现:

  1. 很多要使用透明效果的地方在转角处;
  2. 很多图片不同的地方只在靠近边缘的地方,内部区域几乎都是一样的;

为此安卓系统在png格式图片的基础上,发展出了9patch图片,让图片占用更少的空间。它的格式是xxx.9.png。聊天文字的背景我们就要使用9patch图片,它放在res\drawable目录当中。9patch图片和普通png图片相比,只是在四周多了条1个像素宽的黑色线条,这四条黑线相互交叉,正好把图片分成了9宫格的样子,所以叫做9patch。

6.1.1 左线条和上线条

左线条覆盖的区域(深黄色、蓝色、桃红色)可以被上下拉伸,上线条覆盖的区域(绿色、蓝色、黑色)可以被左右拉伸;左线条和上线的交叉区表示可以被上下左右方向拉伸(下图中蓝色的区域);

当9patch图片需要根据控件的大小缩放时,四个角上的区域(褐色、青色、黄色、紫色)不会被缩放,只有可以被拉伸的区域发生缩放,填满整个控件。

6.1.2 右线条和下线条,

右线条和下线条交叉的区域表示内容区域。例如按钮的文字区域。
显示区域就是:在被拉伸后、可以用来显示文字内容的区域。

需要注意的是左线条和上线条必须有,右线条和下线条可以没有。当右线条和下线条都没有的时候,左线条和上线条的交叉区不仅仅表示该区域可扩展,也表示该区域是文字显示区域。

6.2 9Patch图片的制作

Android SDK提供了9Patch图片的制作工具,它放在sdk目录\tools\这个位置,名字叫做draw9patch。通过这个工具可以在png图片等四条边添加上黑色线,将它变成真正的9.png图片。

不过这里,我们将使用Android Asset Studio提供的在线生成工具。因为它能一次生成对应多种像素密度的图片。

  1. 打开Android Asset Studio选择Simple nine-patch generator

  2. 选择要处理的图片,

  3. 设置允许缩放的区域,

  4. 设置可以用来显示文字的区域

  5. 预览效果,下载图片,

6.3 9Patch图片的使用

图片下载后,将压缩包解压,可以看到自动生成了对应不同像素密度的图片。将这些图片放到项目工程的res目录下即可,