手把手教你做蓝牙聊天应用(六)-界面优化

第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目录下即可,



/*******************************************************************/

* 版权声明

* 本教程只在CSDN安豆网发布,其他网站出现本教程均属侵权。

/*******************************************************************/


第7节 后记

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

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

经过这一章的实践,我们就接触到了初步的网络编程、多线程的配合。因为使用了蓝牙技术,也为将来进行与蓝牙相关的智能硬件开发打下了基础。

不过,也正如在开篇中我们提到的那样,这个应用留下了不少的遗憾,

  1. 没有让蓝牙连接作为Service在后台运行,收到消息后能用通知提醒用户;
  2. 不能记录下上次启动应用时聊天的内容;
  3. 没有查看彼此个人信息的功能;

在应用的使用过程中,还会发现很多诸如上面那样觉得值得添加的功能和改进的地方。所以这个版本的蓝牙聊天应用还只是一个粗糙的版本,我们应该在后面,添加上那些实用的功能。

时间: 2024-10-13 01:48:21

手把手教你做蓝牙聊天应用(六)-界面优化的相关文章

手把手教你做蓝牙聊天应用(三)-获取要连接的设备

第3节 获取要连接的设备 这一节我们开始设计蓝牙聊天应用的界面.根据之前的规划,连接管理将放在单独的ConnectionManager模块当中,所以每当要使用连接功能的时候,我们就暂时把它空着,等到ConnectionManager开发完成之后再加进来. 这里我们将完成下面的界面设计, 3.1 主界面 主界面是一个独立的Activity-ChatActivity,它要实现三个主要功能, 当蓝牙没有开启或者设备不能被发现的时候,请求用户打开对应的功能: 下方有输入框输入要发送的文字内容,点击按钮后

手把手教你做蓝牙聊天应用(一)-设计方案

前言 通过"计算器"和"视频播放器"我们已经能够开始开发一些比较像样的应用了. 今天,我们将开始制作一个"蓝牙聊天"应用.这个应用其实很简单,没有炫酷的界面,就是一对一.通过蓝牙连接两台设备,让两个人互相发送信息. 可别觉得它太无聊.没有什么实用性,其实我们正是想通过它让你开始接触网络编程(蓝牙和wifi都是无线连接技术,它们的程序设计方法和思路非常的相似). 另外,学会了使用蓝牙,就为大家打开了技术开发的另一扇大门-物联网,现在很多物联网硬件都

手把手教你做蓝牙聊天应用(五)-界面使用ConnectionManager

第5节 界面使用ConnectionManager ConnectionManager已经设计完成了,它的价值需要在ChatActivity中体现出来. 5.1 监听ConnectionManager 实现对ConnectionManager各个状态的监听,当ConnectionManager的状态有变化.收到发送的数据时,需要让ChatActivity知道,它才能将各种变化反应到用户界面上. 5.1.1 创建监听器 ConnectionManager定义了ConnectionListener接

手把手教你做蓝牙聊天应用(二)-设计方案

第2节 设计方案 功能确定后,就要开始围绕功能进行功能的验证.界面设计的规划.以及程序结构的规划了. 2.1 技术验证 选定了现阶段要完成的核心功能后,我们首先需要对它们做技术上的验证,看看用什么样的方法能实现它们.在进行技术验证的同时,也能让我们发现很多我们在头脑风暴阶段没有意识到的现实问题. 现在的手机和移动设备已经把蓝牙作为了标准配置,它常常用到与周边小设备的数据连接上,例如蓝牙自拍杆,蓝牙音箱,蓝牙键盘,运动手环等等,可以看出这都是一些不需要太大数据量传输而需要保持长时间数据通信的设备.

手把手教你做蓝牙聊天应用(四)-蓝牙连接模块

第4节 蓝牙连接模块 蓝牙连接的管理模块需要为ChatActivity提供于连接相关的所有功能,要设计的方便使用,并尽量隐藏连接的细节. 4.1 对外接口 我们首先来看看ConnectionManager需要向Chat Activity提供哪些接口. 监听.当应用运行起来后,聊天应用需要启动对其它蓝牙设备的监听,迎接随时可能到来的连接请求.所以ConnectionManager需要提供启动监听-startListen()和停止监听-stopListen()的两个接口: 主动连接.应用搜索到可连接

手把手教你做蓝牙小车(二)

第5节 BTChat 本节开始介绍Arduino蓝牙模块,配合Android应用,实现一个蓝牙聊天应用. 5.1 什么是蓝牙 简单说就是一种不同设备之间点对点通讯的技术. 有大篇大篇的蓝牙各种协议,各种规范... 本课程只讲用到的内容,不展开更多内容了. 5.2 SDP Service Discovery Protocol,简称SDP,是允许设备发现其他设备所支持服务的协议. 蓝牙协议给每个服务分配一个UUID,用来区分各种服务. SDP的UUID是00001101-0000-1000-8000

手把手教你做蓝牙小车(一)

第1节 选择Arduino开发板 1.1 Arduino是什么 对Arduino,官方有一堆解释. 作为一个软件程序猿,在我眼里,Arduino是学习"可怕硬件"的一个便捷通道.它把复杂的硬件名称,属性给我们隐藏起来,只需要一些简单的软件知识,就可以学习硬件开发. 1.2 怎么选择Arduino开发板 1.2.1 官方版本还是兼容版本 Arduino是开源项目,硬件结构,软件设计都开源. 所以不存在盗版的问题. 官方版质量肯定是杠杠的,但价格也贵. 两者价格数字差不多,一个卖人民币,一

手把手教你做蓝牙小车(三)

第6节 马达 要说蓝牙小车哪个模块最重要,多数人一定会以为是马达. 之前说过,为了防止开发板被电流击穿,控制马达时要增加一块扩展板. 所以,控制马达,只对扩展板编程,而不需要对马达编程. 此外,扩展板厂家会提供通过扩展板控制马达的代码. 综上,对开发人员来说,马达,只要确认存在就可以了. 6.1 扩展板 Arduino开发板只提供了一些基础.通用的接口,针对一些常见的特殊功能,Arduino专门为其推出了扩展板. 6.1.1 官方扩展板 Arduino官方目前总共推出了5款扩展板. 分别是 Ar

手把手教你做Android聊天机器人

我相信大家应该知道有款应用叫小黄鸡吧! 如果不知道,那你见过那种可以秒回复的聊天应用么? 如果仍然没看到!那你总见过可以迅速回复你的微信公共账吧! 如果仍然....亲出门左拐 好,不多说. 首先大家都应该了解程序,程序就是由人为的设定搭建起来的一套系统, 这里的机器人也是,简单的原理就是当你输入关键字后,通过一套算法, 在数据库中找到与之最为匹配的内容在返回给你.这个已经有人实现,我们这节教程就用别人 已经实现好的东西去做一??个应用来玩耍~~ (当然如果你非要想知道如何去做,给我留言.看情况我