Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Кафедра ЕОМ
Звіт
з лабораторної роботи №3
з дисципліни: «Мережні операційні стстеми»
Лабораторна робота № 3
ТЕМА: Управління вводом/виводом та сенсорною підсистемою в ОС Android
МЕТА: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Послідовність виконання роботи
1. Ознайомитись з загальними відомостями про управління інтерфейсом користувача в ОС Android.
2. Створити тестову програму на основі програми-прототипу згідно заданого варіанту.
3. Відлагодити та дослідити роботу тестової програми на емуляторі.
4. Знайти відповіді на контрольні запитання.
5. Скласти та захистити звіт з лабораторної роботи.
Завдання
Програма контролю дотиків до сенсорного екрану
Зміст звіту
1. Перелік основних елементів інтерфейсу Android-пристрою.
2. Лістинг тестової програми.
3. Результати виконання тестової програми.
Контрольні питання
1. Принцип роботи сенсорного екрану.
2. Різниця між SingleTouch та MultiTouch.
3. Порядок дій при створенні інтерфейсу користувача в ОС Android.
Хід роботи
Перелік основних елементів інтерфейсу Android-пристрою:
- TextView
- EditText
- Button
- CheckBox
- ImageView
Результат виконання програми(рис.2):
Рис.2 Результат виконання програми
Висновок: Виконавши дану лабораторну роботу я оволодів навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Лістинг програми:
MainActivity:
package com.example.touch2;
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 = "";
/** Called when the activity is first created. */
@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;
}
}