一个毕业设计 小学生英语app
来源:互联网 发布:linux版本查看命令 编辑:程序博客网 时间:2024/05/16 02:05
小学生英语APP文档说明
主要源码的说明文档
├─adapter
│ GridViewItem.java 游戏图鉴列表每一项的布局
│ MyAdapter.java 游戏图鉴列表的适配器
│
├─dc
│ app.java app
│ ksyxActivity.java 开始游戏界面
│ MainActivity.java 主界面
│ MusicService.java 播放后台音乐
│ setActivity.java 设置界面
│ yxsmActivity.java 游戏说明界面
│ yxtjActivity.java 游戏图鉴
│
├─fragment
│ itemAdapter.java 每一项单词适配器
│ itemfragment.java 每一项单词显示界面
│
├─Interface
│ onclick.java 点击选择答案时回调
│ oninit.java tts回调
│
├─model
│ danci.java 单词数据
│
├─utils
│ │ CopyRaw.java 复制单词列表
│ │ DBHelper.java 数据库工具
│ │ Helper.java 存储配置值接口
│ │ Speaker.java tts播放接口
│ │
│ └─easyfont
│ EasyFonts.java 自定义字库,显示分数
│ FontSourceProcessor.java
│
└─view
CountdownView.java 一个倒计时view,显示15秒倒计时
CustomCountDownTimer.java
源码设计流程:
主界面:MainActivity ,复制数据库
datapath = "/data/data/" + this.getPackageName().toString()
+ "/databases";
new MyTask().execute("");
播放音乐:
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (helper.getMusiconoff()) {// 如果开了,则播放
startService(intent);
}
}
点击各个按钮,进入对应界面:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.ksyx:
startActivity(new Intent(this, ksyxActivity.class));
break;
case R.id.xzjc:
new AlertDialog.Builder(this)
.setTitle("选择教材")
.setItems(new String[] { "第一章", "第二章" },
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Intent start=new Intent(MainActivity.this,
ksyxActivity.class);
start.putExtra("zhangjie", getzhangjie(which));//获取到第几章节
startActivity(start);
}
}).setNegativeButton("确定", null).show();
break;
case R.id.yxtj:
startActivity(new Intent(this, yxtjActivity.class));
break;
case R.id.yxsm:
startActivity(new Intent(this, yxsmActivity.class));
break;
case R.id.yxsz:
startActivity(new Intent(this, setActivity.class));
break;
}
}
开始游戏界面主要流程:
// 如果选择的是进入章节,则获取章节的单词,否则获取全部
String zhangjie = getIntent().getStringExtra("zhangjie");
if (zhangjie != null && (!zhangjie.equals(""))) {
// 获取数据列表
items = new DBHelper(this).getzhangjie(zhangjie);
;
// 获取存储的进度
mCurrPageIndex = helper.getIntValue(zhangjie, 0);
keyjindu = zhangjie;
} else {
items = new DBHelper(this).getAllCotacts();
mCurrPageIndex = helper.getIntValue(keyjindu, 0);
}
显示分数:
score = helper.getScore();
scoreView = (TextView) findViewById(R.id.score);
scoreView.setText(score + "");
scoreView.setTypeface(EasyFonts.num(this));//设置字体
启动一个倒计时
mCountdownView.start(time1);
mCountdownView.setOnCountdownEndListener(new OnCountdownEndListener() {
@Override
public void onEnd(CountdownView cv) {
// TODO Auto-generated method stub
next(false, false); //时间到自动进入下一个,显示错误
}
});
两个按钮,进行前后选择
prev = (ImageButton) findViewById(R.id.prev);
next = (ImageButton) findViewById(R.id.next);
prev.setOnClickListener(this);
next.setOnClickListener(this);
。。。。。。。。。。。。。。
case R.id.prev:
if (mCurrPageIndex >= 1) {
mPager.setCurrentItem(mCurrPageIndex - 1);
}
break;
case R.id.next:
if (mCurrPageIndex < size - 1) {
mPager.setCurrentItem(mCurrPageIndex + 1);
}
设置viewpage
mAdapter = new itemAdapter(getSupportFragmentManager(), this);适配器
size = items.size(); 拿到总数
mAdapter.setItems(items);
mPager.setAdapter(mAdapter);
mPager.setOffscreenPageLimit(2);// 限制缓存数目为2,节省内存
mPager.setCurrentItem(mCurrPageIndex); 设置当前的
mPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
if (arg0 != mCurrPageIndex) {
isfirst = false; // 只要移动,就会改变
}
mCurrPageIndex = arg0;
// 如果向前,则存储当前
if (helper.getIntValue(keyjindu, 0) < mCurrPageIndex)
helper.putValue(keyjindu, mCurrPageIndex);
mCountdownView.start(time1); 重启倒计时
playText(); 播放当前的单词
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
整体逻辑整理:
加载数据,显示,前后按钮切换可进入各个单词,定时器在15秒后不做选择,则直接显示错误,进入下一个。
选择正确,加分,下一个。选择错误,不加分,下一个。
技术点:
1:播放音乐:MusicService.java Service的写法和启动
2:分数存储,Helper.java SharedPreferences的写法和用法
3:单词读音 Speaker.java TTS的实现和用法
4:复制数据库 CopyRaw.java复制数据到databases区域,为后面的操作准备
5:数据库操作DBHelper.java主要是单词的读写查询方法
毕设可以写的建议:
AndroidManifest.xml的用法
SharedPreferences Service的写法和启动
TTS的实现和用法
复制数据到databases 数据库查询
签名
混淆
- 一个毕业设计 小学生英语app
- 一个毕业设计 家庭理财app
- 一个毕业设计 儿童趣味数学 app
- 小学生英语100句
- 一个小学生的作文~~~~~
- 一个毕业设计的论坛
- 求一个jsp毕业设计!
- 求一个VB 毕业设计
- 为了回答一个小学生问题
- 小学生
- 大学生安卓APP毕业设计开发
- 2017毕业设计Android天气APP UI展示
- 一个有趣的小学生算法题
- 我是一个学软件的小学生
- 毕业设计
- 毕业设计
- 毕业设计
- 毕业设计
- 在linux (CentOs7)上安装Postgres-xc
- 基于STM32F429-Discovery RTEMS 4.11的移植
- 第十一周——实现类中的运算符重载
- UVALive - 4264 Message (模拟)
- L2-006. 树的遍历(利用后序中序还原二叉树)
- 一个毕业设计 小学生英语app
- 模拟最短路径寻路(JAVA界面)
- pcre.h: No such file or directory
- ios使用内存管理工具
- 第11周—— 存储班长信息的学生类
- 构建集群的基础理论
- springmvc + hibernate + mysql + maven 简单应用
- 新的开始!!!!!
- mac Tomcat启动