Управління вводом/виводом та сенсорною підсистемою в ОС Android

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Мережеві операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Лабораторна робота №3 з предмету: «Мережні операційні системи» на тему: «Управління вводом/виводом та сенсорною підсистемою в ОС Android» МЕТА: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android. Завдання: Програма контролю дотиків до сенсорного екрану, інтерфейс простої форми для вводу даних. Перелік основних елементів інтерфейсу Android-пристрою TextView - призначений для відображення тексту без можливості редагування його користувачем RelativeLayout  -  для кожного елемента налаштовується його положення щодо інших елементів LinearLayout  - відображає View-елементи у вигляді одного рядка (якщо він Horizontal) або одного стовпчика (якщо він Vertical) TableLayout - відображає елементи у вигляді таблиці, по рядках і стовпцях AbsoluteLayout - для кожного елемента вказується явна позиція на екрані в системі координат (x, y) ViewGroup - це Layout. Layout бувають різних типів і відповідаєють за те, як будуть розташовані їх дочірні View на екрані (таблицею, рядком, стовпцем ...) Button - кнопка CheckBox - чекбокс Plain Text - найпростіший варіант текстового поля без наворотів. EditText - це текстове поле для призначеного для користувача введення, яке використовується, якщо необхідно редагування тексту. Лістинг тестової програми AndroidBasicStarter.java package com.badlogic.androidgames; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; public class AndroidBasicsStarter extends ListActivity { String tests[] = { "SingleTouchTest", "MultiTouchTest", "KeyTest" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, tests)); } @Override protected void onListItemClick(ListView list, View view, int position, long id) { super.onListItemClick(list, view, position, id); String testName = tests[position]; try { Class clazz = Class .forName("com.badlogic.androidgames." + testName); Intent intent = new Intent(this, clazz); startActivity(intent); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } KeyTest.java package com.badlogic.androidgames; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnKeyListener; import android.widget.EditText; import android.widget.TextView; public class KeyTest extends Activity { StringBuilder builder = new StringBuilder(); //TextView textView; EditText editText; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); editText = new EditText(this); setContentView(editText); } } SingleTouchTest.java package com.badlogic.androidgames; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class SingleTouchTest extends Activity implements OnTouchListener { StringBuilder builder = new StringBuilder(); TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); textView = new TextView(this); textView.setText("Touch and drag (one finger only)!"); textView.setOnTouchListener(this); setContentView(textView); } @Override public boolean onTouch(View v, MotionEvent event) { builder.setLength(0); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: builder.append("down, "); break; case MotionEvent.ACTION_MOVE: builder.append("move, "); break; case MotionEvent.ACTION_CANCEL: builder.append("cancle, "); break; case MotionEvent.ACTION_UP: builder.append("up, "); break; } builder.append(event.getX()); builder.append(", "); builder.append(event.getY()); String text = builder.toString(); Log.d("TouchTest", text); textView.setText(text); return true; } } MultiTouchTest.java package com.badlogic.androidgames; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class MultiTouchTest extends Activity implements OnTouchListener { StringBuilder builder = new StringBuilder(); TextView textView; float[] x = new float[10]; float[] y = new float[10]; boolean[] touched = new boolean[10]; private void updateTextView() { builder.setLength(0); for(int i = 0; i < 10; i++) { builder.append(touched[i]); builder.append(", "); builder.append(x[i]); builder.append(", "); builder.append(y[i]); builder.append("\n"); } textView.setText(builder.toString()); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); textView = new TextView(this); textView.setText("Touch and drag (multiple fingers supported)!"); textView.setOnTouchListener(this); setContentView(textView); } @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction() & MotionEvent.ACTION_MASK; int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; int pointerId = event.getPointerId(pointerIndex); switch (action) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_POINTER_DOWN: touched[pointerId] = true; x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: case MotionEvent.ACTION_CANCEL: touched[pointerId] = false; x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); break; case MotionEvent.ACTION_MOVE: int pointerCount = event.getPointerCount(); for (int i = 0; i < pointerCount; i++) { pointerIndex = i; pointerId = event.getPointerId(pointerIndex); x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); } break; } updateTextView(); return true; } } Результат роботи програми / Рис.1 / Рис.2 / Рис.3 Висновок: Виконавши дану лабораторну роботу я оволодів навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Антиботан аватар за замовчуванням

20.12.2017 21:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!