Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторна робота №3
з дисципліни: «Мережні операційні системи»
на тему: «Управління вводом/виводом та сенсорною підсистемою в ОС Android»
Мета: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Завдання:
Програма контролю дотиків до сенсорного екрану.
Отже, розроблено програму, яка показує дотики до екрану, враховуючи multitouch, тобто можливість дотику кількох пальців(до 10-ти). Результат роботи програми зображено на Рис. 1 при доторку до екрану 3 пальців.
Рис. 1. Робота програми
Лістинг програми:
MainActivity.java
package com.knowleen.lab3and;
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 MainActivity extends Activity implements 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;
}
}
Висновок. На даній лабораторній роботі я розробив програму для контролю дотиків до сенсорного екрану. Також закріпив навики створення графічного інтерфейсу програм.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!