Разработка развивающей игры для смартфонов под управлением операционной системы Android
Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 18.01.2016 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
.setIcon(android.R.drawable.ic_menu_add)
.setTitle(R.string.add_folder)
.setView(addFolderView)
.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mDatabase.insertFolder(mAddFolderNameInput.getText().toString().trim(), System.currentTimeMillis());
updateList();
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
case DIALOG_RENAME_FOLDER:
final View renameFolderView = factory.inflate(R.layout.folder_name, null);
mRenameFolderNameInput = (TextView) renameFolderView.findViewById(R.id.name);
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_menu_edit)
.setTitle(R.string.rename_folder_title)
.setView(renameFolderView)
.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mDatabase.updateFolder(mRenameFolderID, mRenameFolderNameInput.getText().toString().trim());
updateList();
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
case DIALOG_DELETE_FOLDER:
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_delete)
.setTitle(R.string.delete_folder_title)
.setMessage(R.string.delete_folder_confirm)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// TODO: this could take a while, I should show progress dialog
mDatabase.deleteFolder(mDeleteFolderID);
updateList();
}
})
.setNegativeButton(android.R.string.no, null)
.create();
}
return null;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
switch (id) {
case DIALOG_ADD_FOLDER:
break;
case DIALOG_RENAME_FOLDER: {
FolderInfo folder = mDatabase.getFolderInfo(mRenameFolderID);
String folderName = folder != null ? folder.name : "";
dialog.setTitle(getString(R.string.rename_folder_title, folderName));
mRenameFolderNameInput.setText(folderName);
break;
}
case DIALOG_DELETE_FOLDER: {
FolderInfo folder = mDatabase.getFolderInfo(mDeleteFolderID);
String folderName = folder != null ? folder.name : "";
dialog.setTitle(getString(R.string.delete_folder_title, folderName));
break;
}
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return false;
}
switch (item.getItemId()) {
case MENU_ITEM_EXPORT:
Intent intent = new Intent();
intent.setClass(this, SudokuExportActivity.class);
intent.putExtra(SudokuExportActivity.EXTRA_FOLDER_ID, info.id);
startActivity(intent);
return true;
case MENU_ITEM_RENAME:
mRenameFolderID = info.id;
showDialog(DIALOG_RENAME_FOLDER);
return true;
case MENU_ITEM_DELETE:
mDeleteFolderID = info.id;
showDialog(DIALOG_DELETE_FOLDER);
return true;
}
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case MENU_ITEM_ADD:
showDialog(DIALOG_ADD_FOLDER);
return true;
case MENU_ITEM_IMPORT:
intent = new Intent();
intent.setClass(this, FileListActivity.class);
intent.putExtra(FileListActivity.EXTRA_FOLDER_NAME, "/sdcard");
startActivity(intent);
return true;
case MENU_ITEM_EXPORT_ALL:
intent = new Intent();
intent.setClass(this, SudokuExportActivity.class);
intent.putExtra(SudokuExportActivity.EXTRA_FOLDER_ID, SudokuExportActivity.ALL_FOLDERS);
startActivity(intent);
return true;
case MENU_ITEM_ABOUT:
showDialog(DIALOG_ABOUT);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent i = new Intent(this, SudokuListActivity.class);
i.putExtra(SudokuListActivity.EXTRA_FOLDER_ID, id);
startActivity(i);
}
private void updateList() {
mCursor.requery();
}
private static class FolderListViewBinder implements ViewBinder {
private Context mContext;
private FolderDetailLoader mDetailLoader;
public FolderListViewBinder(Context context) {
mContext = context;
mDetailLoader = new FolderDetailLoader(context);
}
@Override
public boolean setViewValue(View view, Cursor c, int columnIndex) {
switch (view.getId()) {
case R.id.name:
((TextView) view).setText(c.getString(columnIndex));
break;
case R.id.detail:
final long folderID = c.getLong(columnIndex);
final TextView detailView = (TextView) view;
detailView.setText(mContext.getString(R.string.loading));
mDetailLoader.loadDetailAsync(folderID, new FolderDetailCallback() {
@Override
public void onLoaded(FolderInfo folderInfo) {
if (folderInfo != null)
detailView.setText(folderInfo.getDetail(mContext));
}
});
}
return true;
}
public void destroy() {
mDetailLoader.destroy();
}
}
}
Приложения С
Рисунок 14
Интерфейс игры теста
public class QuizActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
private AbsoluteLayout Abs;
private Button Question;
private Button[] Answers=new Button[4];
private double width;
private double height;
private static final int QUESTIONS=8;
private static final int VARIANTS=4;
private static final char DELIMITER='/';
private String[][] AnsMatrix=new String[VARIANTS][QUESTIONS];
private int[] RightAnswers=new int[QUESTIONS];
private String[] Ques=new String[QUESTIONS];
private TypedArray Base;
private int time=0;
private int total_time=8;
private int right=0;
private int wrong=0;
private int current_right=0;
private AbsoluteLayout.LayoutParams[] params=new AbsoluteLayout.LayoutParams[VARIANTS+1];
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
Abs=new AbsoluteLayout(this);
setContentView(Abs);
Display display = getWindowManager().getDefaultDisplay();
width=display.getWidth();
height=display.getHeight();
Question= new Button(this);
params[0]=new AbsoluteLayout.LayoutParams(
(int)width,(int)height/4,0,0
);
Question.setLayoutParams(params[0]);
Abs.addView(Question);
Question.setOnClickListener(this);
//
for (int i=1;i<VARIANTS+1;i++){
int k=i%2;
int m;
if (i<3) m=1;
else{
m=2;
}
Answers[i-1]= new Button(this);
params[i]=new AbsoluteLayout.LayoutParams(
(int)width/2,(int)height/4,(int)(k*width/2),(int)(m*height/4)
);
Answers[i-1].setLayoutParams(params[i]);
Abs.addView(Answers[i-1]);
Answers[i-1].setOnClickListener(this);
}
//getSubstringBetweenDelimiters(2,3,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/");
//Toast.makeText(this, getSubstringBetweenDelimiters(5,6,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/"), Toast.LENGTH_LONG).show();
LoadQuestions();
LoadQuestion();
}
catch(Exception e){
Toast.makeText(this, e+"", Toast.LENGTH_LONG).show();
}
}
private void LoadQuestion() {
int qs=(int)System.currentTimeMillis()%QUESTIONS;
Question.setText(Ques[qs]);
for (int i=0;i<VARIANTS;i++){
Answers[i].setText(AnsMatrix[i][qs]);
}
current_right=RightAnswers[qs]-1;
}
private void LoadQuestions(){
Resources res=getResources();
Base=res.obtainTypedArray(R.array.Questions);
for (int i=0;i<QUESTIONS;i++){
Ques[i]=getSubstringBetweenDelimiters(0,1,Base.getString(i));
for (int j=0;j<VARIANTS;j++){
AnsMatrix[j][i]=getSubstringBetweenDelimiters(j+1,j+2,Base.getString(i));
}
RightAnswers[i]=Integer.parseInt(getSubstringBetweenDelimiters(VARIANTS+1,VARIANTS+2,Base.getString(i)));
}
}
private String getSubstringBetweenDelimiters(int k, int m, String str){
int index1=0;
int index2=0;
int len=str.length();
int dels=0;
for (int i=0;i<len;i++){
if (str.charAt(i)==DELIMITER){
dels++;
}
if (dels==k){
index1=i;
}
if (dels==m){
index2=i;
}
}
//Toast.makeText(this, index1+" "+index2, Toast.LENGTH_LONG).show();
return str.substring(index1+2, index2+1);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (arg0==Question){
wrong++;
}
else{
wrong++;
for (int i=0;i<VARIANTS;i++){
if (arg0==Answers[i]){
if (current_right==i){
wrong--;
right++;
}
}
}
}
time++;
LoadQuestion();
if (time==total_time){
Stats();
time=0;
right=0;
wrong=0;
}
}
private void Stats() {
// TODO Auto-generated method stub
double rating=Math.round(((double)right/((double)right+(double)wrong))*100);
String stat="";
stat+=getString(R.string.note1);
stat+=" "+right+" ";
stat+=getString(R.string.note2);
stat+=" "+total_time+". ";
stat+=getString(R.string.note3);
stat+=" "+(rating+"").substring(0,(rating+"").length()-2);
Toast.makeText(this, stat, Toast.LENGTH_LONG).show();
}
Рисунок 15
Страница результата.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Quiz</string>
<string name="note1">Vi otvetili</string>
<string name="note2">raz pravilno ot</string>
<string name="note3">Vash reyting</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="Questions">
<item>/nКто основатель apple?/Стив Джобс/Сергей Брин/Ли Бёнчхоль/Акио Морита/1/</item>
<item>/nСамый популарный Ос?/Microsoft/Symbian/iOS/Android/4/</item>
<item>/nSamsung в каком стране зародился?/Корея/Америка/Узбекистан/Канада/1/</item>
<item>/nЧто такой Гаджет?/безделушка/Игровая приставка/Мультимедиа устройства/Для просмотря Фото/1/</item>
<item>/nКак можем просмотреть серия номер телфона?/*4720#/*#0000#/*#92702689#/*#06*/4/</item>
<item>/nAndroid Кому Предналежит?/Google/Mail.ru/Windows/Symbian /1/</item>
<item>/nВ каком Программе создаеться Приложения Андроид/В Eclipse/В С++/В Паскале/В PHP/1/</item>
<item>/nВ Мире самый Популарный Устройства?/Samsung/Iphone/Nokia/Sony-Ericcson/1/</item>
</array>
</resources>
Размещено на Allbest.ru
Подобные документы
Разработка программного обеспечения для платформы Android версии 2.3: информационное приложения для поклонников футбольной команды, с возможностью просмотра событий, статистики и иной информации о команде и ее успехах. Листинг JsonDataManager.java.
дипломная работа [4,1 M], добавлен 24.04.2013Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.
курсовая работа [2,6 M], добавлен 15.06.2013Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015Характеристика работы операционной системы Android, используемой для мобильных телефонов. Создание Android проекта в среда разработки Eclipse. Общая структура и функции файла манифест. Компоненты Android приложения. Способы осуществления разметки.
курсовая работа [1,0 M], добавлен 15.11.2012Структура и архитектура платформы Android. Основные достоинства и недостатки операционной системы Android. Среда разработки Eclipse, платформа Java. Подготовка среды разработки. Вкладка "Погода", "Курс валют", "Новости". Просмотр полной новости.
дипломная работа [1,0 M], добавлен 11.07.2014Классификация обучающих игр и особенности их использования для младших школьников. Проектирование приложения, выполняемого в среде операционной системы Android для тестирования учеников. Реализация с помощью языка JavaScript игровой развивающей программы.
дипломная работа [423,5 K], добавлен 27.06.2013Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.
дипломная работа [2,6 M], добавлен 10.07.2017