Разработка развивающей игры для смартфонов под управлением операционной системы 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.