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

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

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

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

Рік:
2015
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Мережеві операційні системи

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №3 з дисципліни: «Мережні операційні системи» на тему: «Управління вводом/виводом та сенсорною підсистемою в ОС Android» МЕТА: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android. 1. Завдання Створити тестову програму на основі програми-прототипу згідно заданого варіанту. Програма контролю дотиків до сенсорного екрану (SingleTouchTest.java та MultiTouchTest.java) Інтерфейс простої форми для вводу даних. 2. Перелік основних елементів інтерфейсу Android-пристрою Графічний інтерфейс користувача для Android програми побудований з використанням ієрархії View і ViewGroup об'єктів. View об'єкти, як правило - це UI віджети, такі як кнопки або текстові поля і ViewGroup, а також невидимі контейнери, які визначають, як будуть використовуватись child-елементи, наприклад, у сітці або вертикальному списку. Android надає XML-словник, який відповідає підкласам View і ViewGroup, тому ви можете визначити свій користувальницький інтерфейс в XML, використовуючи ієрархію елементів інтерфейсу користувача. / Рис.1. Ілюстрація того, як ViewGroup об'єкти утворюють філії в макеті і містять інші View об'єкти. Основними елементами інтерфейсу Android пристрою є: кнопки, списки, текстові поля вводу, текстові поля виводу, radio button, check button, progress bar, data picker, rating bar та інші. Платформа для інтерфейсу користувача Android заснована на обробці дотиків. Пристрої Android оснащуються сенсорними екранами, тому android додатки повинні добре підтримувати сенсорний ввід. У режимі сенсорного введення зазвичай немає фокусу і вибраного елемента, а при перемиканні на інші режими (наприклад: режим списку) і назад фокус і вибраний елемент можуть зникати і знову з'являтися. Винятком є ​​сфокусований режим сенсорного введення. Кнопки і віджети повинні бути досить великими, щоб їх можна було вибрати дотиками. 3. Лістинг тестової програми SingleTouch.java package com.example.kubic.moslab3; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; public class SingleTouch extends AppCompatActivity implements View.OnTouchListener { TextView tv; float x; float y; String sDown; String sMove; String sUp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setOnTouchListener(this); setContentView(tv); } @Override public boolean onTouch(View v, MotionEvent event) { x = event.getX(); y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: sDown = "Down: " + x + "," + y; sMove = ""; sUp = ""; break; case MotionEvent.ACTION_MOVE: sMove = "Move: " + x + "," + y; break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: sMove = ""; sUp = "Up: " + x + "," + y; break; } tv.setText(sDown + "\n" + sMove + "\n" + sUp); return true; } } MultiTouch.java package com.example.kubic.moslab3; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.TextView; public class MultiTouch extends Activity implements View.OnTouchListener { StringBuilder sb = new StringBuilder(); TextView tv; int upPI = 0; int downPI = 0; boolean inTouch = false; String result = ""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tv = new TextView(this); tv.setTextSize(30); tv.setOnTouchListener(this); setContentView(tv); } @Override public boolean onTouch(View view, MotionEvent event) { int actionMask = event.getActionMasked(); int pointerIndex = event.getActionIndex(); int pointerCount = event.getPointerCount(); switch (actionMask) { case MotionEvent.ACTION_DOWN: inTouch = true; case MotionEvent.ACTION_POINTER_DOWN: downPI = pointerIndex; break; case MotionEvent.ACTION_UP: inTouch = false; sb.setLength(0); case MotionEvent.ACTION_POINTER_UP: upPI = pointerIndex; break; case MotionEvent.ACTION_MOVE: sb.setLength(0); for (int i = 0; i < 10; i++) { sb.append("Index = " + i); if (i < pointerCount) { sb.append(", ID = " + event.getPointerId(i)); sb.append(", X = " + event.getX(i)); sb.append(", Y = " + event.getY(i)); } else { sb.append(", ID = "); sb.append(", X = "); sb.append(", Y = "); } sb.append("\r\n"); } break; } result = "down: " + downPI + "\n" + "up: " + upPI + "\n"; if (inTouch) { result += "pointerCount = " + pointerCount + "\n" + sb.toString(); } tv.setText(result); return true; } } 4. Результати виконання тестової програми Рис.2. Результат виконання SingleTouch. Рис.2. Результат виконання MultiTouch. ВИСНОВОК В даній лабораторній роботі я оволодів навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Антиботан аватар за замовчуванням

13.12.2016 13:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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