Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторна робота №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;
}
}
Висновок. На даній лабораторній роботі я розробив програму для контролю дотиків до сенсорного екрану. Також закріпив навики створення графічного інтерфейсу програм.