DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

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

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

Про що ця робота

У лабораторній роботі досліджено управління вводом/виводом та сенсорною підсистемою в ОС Android. Наведено приклади коду для обробки дотиків та подій клавіатури.

У роботі розглядаються

  • ОС Android
  • Сенсорна підсистема
  • Управління вводом/виводом
  • Програмування мобільних пристроїв
  • Обробка подій
  • Інтерфейс користувача

Зміст і розділи

  1. Мета
  2. Завдання
  3. Перелік основних елементів інтерфейсу
  4. Лістинг тестової програми
  5. Результат роботи програми
  6. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Пищак І. І.

Ключові поняття

AndroidTextViewEditTextMotionEventTouchEventLinearLayoutRelativeLayoutActivityIntentView

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Лабораторна робота №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.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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