第6节 应用的美化与完善
现在,我们还可以为聊天应用加上多国语言的支持和关于界面,把使用到的颜色和尺寸定义到资源文件当中,这样一来,安豆的蓝牙聊天应用就算是比较完整的完成了。
这两部分在以前“计算器”章节中,已经介绍过了,大家就自己动手吧。
这一节,我们将重点介绍聊天文字的背景图片是如何制作的。
6.1 9Patch图片的原理
观察一下安卓系统中需要经常用到的图片,可以发现:
- 很多要使用透明效果的地方在转角处;
- 很多图片不同的地方只在靠近边缘的地方,内部区域几乎都是一样的;
为此安卓系统在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提供的在线生成工具。因为它能一次生成对应多种像素密度的图片。
- 打开Android Asset Studio选择
Simple nine-patch generator
- 选择要处理的图片,
- 设置允许缩放的区域,
- 设置可以用来显示文字的区域
- 预览效果,下载图片,
6.3 9Patch图片的使用
图片下载后,将压缩包解压,可以看到自动生成了对应不同像素密度的图片。将这些图片放到项目工程的res
目录下即可,
/*******************************************************************/
* 版权声明
* 本教程只在CSDN和安豆网发布,其他网站出现本教程均属侵权。
/*******************************************************************/
第7节 后记
现在,我们还可以为聊天应用加上多国语言的支持和关于界面,把使用到的颜色和尺寸定义到资源文件当中,这样一来,安豆的蓝牙聊天应用就算是比较完整的完成了。
这两部分在以前“计算器”章节中,已经介绍过了,大家就自己动手吧。
经过这一章的实践,我们就接触到了初步的网络编程、多线程的配合。因为使用了蓝牙技术,也为将来进行与蓝牙相关的智能硬件开发打下了基础。
不过,也正如在开篇中我们提到的那样,这个应用留下了不少的遗憾,
- 没有让蓝牙连接作为
Service
在后台运行,收到消息后能用通知提醒用户; - 不能记录下上次启动应用时聊天的内容;
- 没有查看彼此个人信息的功能;
在应用的使用过程中,还会发现很多诸如上面那样觉得值得添加的功能和改进的地方。所以这个版本的蓝牙聊天应用还只是一个粗糙的版本,我们应该在后面,添加上那些实用的功能。