抢答器项目说明书
项目代码结构:
(1)Socket服务端:
(2)抢答器客户端:
2.项目重要技术点说明:
(1)本次项目主要是利用Socket在客户端和服务器端之间传输字符串数据实现通信。
(2)读取的试卷数据存放在服务端的文件中,而试卷内容主要是JSON格式,所以抢答器客户端使用了文件存储技术和JSON解析技术。
(3)因为项目中界面需要实时动态变化,连接Socket之后,相当于开了一个线程,因不能在线程中更新界面,需要使用异步回调机制Handler处理信息,通知界面更新。
(4)在抢答之前需要倒计时,将Timer和TimerTask两个类结合使用,可以实现执行一次倒计时任务。
(5)弹出框PopupWindow由这个类实现的,可以使用任意布局的View作为其内容,也可以自定义弹出框显示、隐藏的动画效果,且这个弹出框是悬浮在当前activity之上。
(6)应用开启界面使用了Animations的API,这个实现了淡入淡出、位置移动等动画效果,且应用在UI控件之中。
3.项目使用说明:(客户端)
(2)连接服务器:若使用模拟器测试会自动连接,连接成功就会跳到主界面,若超时(6秒)就会提示“连接出错”,并需要客户自己重新输入IP(10.0.3.2);若为真机测试则需要自己手动输入。
(3)主界面:如果连接成功,进去了下面蓝色的界面,蓝色界面的最上面有建立成功的标志,服务器会提示有人访问,需要点击确定(服务端允许),客户端才可以正常运行。
(4)主界面按钮:下图中发起请求按钮是联机抢答,右侧是显示用户的名字
(5)发起抢答请求:点击发起请求,经由服务器处理,所有客户端会出现提示框:
(6)请求取消:若点击取消,所有客户端的对话框将消失,并在下面提示“有人退出,连接终止”。
(7)连接过程:若每当一个客户端点击确定,在上方会显示连接的人数,比如下面有两人连接了,显示connecting......2/3。
(8)准备抢答:所有人点击确定连接之后,会有提示,所有试卷下载完毕,然后进入抢答阶段,这时候会弹出倒计时对话框:请准备抢答(倒计时5秒)!
(9)抢答成功:此时显示第一道问题:如果有用户提前抢答并抢答正确,所有客户端会提示谁抢答成功并继续倒计时进入下一道题。若抢答时答案错误,则提示答案错误,其他用户仍可以抢答。(如下图)
(10)游戏结束:本程序用了3道题来测试,当抢答完三道题之后,显示对话框:游戏结束。
(11)显示结果:所有客户端点击确定后,会在最后面显示出各人的得分总计。
答题规则:每抢答答对一道得1分。
如下方显示:“个人得分score:CC:0,BB:0,AA:3”
此截图为用户名BB的客户端,BB和CC得分为0分,但AA为3分,这样则表示AA胜利。