本项目在顾同学的个人项目的基础上,进行改进,实现功能。
优化了UI、新增用户注册页面,发送验证码绑定手机号、题目自动生成并且生成答案、选择题答题界面。
首先,通过添加样式来优化登录界面。其中添加了CirclelmageView库,利用标签定义各类要使用的颜色。在drawable中自定义EditText输入框的样式,新建rectangle_text_view.xml样式文件,将shape设置为矩形,corners设置为圆角,stroke设置内填充颜色。
其次,实现用户注册功能;利用登陆界面的重用完成用户注册界面,然后实现短信验证功能,我们选择了WghStudio的短信服务作为我们的短信服务供应商。通过向服务器提供的短信接口发送一个get请求,完成向手机发送短信,在接着通过填写的验证码发送get请求完成验证。
再次,实现题目自动生成和生成答案。具体思路就是将高中的三角函数转换成double数据,高中的开根号和开平方都换算成double数据这样数据都成为和小学题目一样的类型了,最后我们利用后缀表达式完成计算。
最后,就是答题界面。我们采用了ViewPager加Fragment的结构来实现的,具体思路就是将题目存储在一个数组链表里面,将答案存在double[]里面,将得分存在一个数组中。
细说实现答题功能:
高中部分:通过判断是否sin,cos,tan,若有,取出后面的数值,进行三角计算,将计算的结果存储在原来的字符位置上。最终将所有sin、cos、tan函数完成转换。
初中部分:进行^(1/2)和^(2)两种字符的判断,若判断到有,则进行转化,将计算的结果填入对应的位置,若位数不够,则!补,最后将!删除即可。
小学部分:将数字和字符存放在数组中,利用后缀表达式的计算方式,利用两个栈完成计算。
最终我们实现了结对项目的所有需求,同时我收获也很大,从不知道怎么写界面的小白,知道了界面的实现方式,同时也知道了安卓app开发的一些技术,更加熟练的使用Java编程。